A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							76 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							76 lines
						
					
					
						
							1.5 KiB
						
					
					
				<?php
 | 
						|
/*
 | 
						|
 * Copyright © 2024 ExacTI Technology Solutions. All rights reserved.
 | 
						|
 * GPLv3 General License.
 | 
						|
 * https://exacti.com.br
 | 
						|
 * Phacil PHP Framework - https://github.com/exacti/phacil-framework
 | 
						|
 */
 | 
						|
 | 
						|
namespace Phacil\Framework;
 | 
						|
 | 
						|
use \Phacil\Framework\Interfaces\Action as ActionInterface;
 | 
						|
use \Phacil\Framework\Traits\Action as ActionTrait;
 | 
						|
use \Phacil\Framework\Config;
 | 
						|
 | 
						|
/** 
 | 
						|
 * Action class to route all framework system controllers
 | 
						|
 * 
 | 
						|
 * @since 1.0.1
 | 
						|
 * @deprecated 2.0.0
 | 
						|
 * @see \Phacil\Framework\Action
 | 
						|
 * @package Phacil\Framework 
 | 
						|
 */
 | 
						|
final class ActionSystem implements ActionInterface
 | 
						|
{
 | 
						|
 | 
						|
	use ActionTrait;
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @inheritdoc
 | 
						|
	 */
 | 
						|
	public function __construct($route, $args = array(), $local = self::APP)
 | 
						|
	{
 | 
						|
		$path = '';
 | 
						|
 | 
						|
		$parts = explode('/', str_replace('../', '', (string)$route));
 | 
						|
 | 
						|
		foreach ($parts as $part) {
 | 
						|
			$path .= $part;
 | 
						|
 | 
						|
			if (is_dir(Config::DIR_SYSTEM() . '' . $path)) {
 | 
						|
				$path .= '/';
 | 
						|
 | 
						|
				array_shift($parts);
 | 
						|
 | 
						|
				continue;
 | 
						|
			}
 | 
						|
 | 
						|
			if (is_file(Config::DIR_SYSTEM() . '' . str_replace('../', '', $path) . '.php')) {
 | 
						|
				$this->file = Config::DIR_SYSTEM() . '' . str_replace('../', '', $path) . '.php';
 | 
						|
 | 
						|
				$this->class = 'System' . preg_replace(self::REGEX_CLASS_SANITIZE, '', $path);
 | 
						|
 | 
						|
				$this->classAlt = [
 | 
						|
					'legacy' => $this->class,
 | 
						|
					'direct' => preg_replace(self::REGEX_CLASS_SANITIZE, '', $part)
 | 
						|
				];
 | 
						|
 | 
						|
				array_shift($parts);
 | 
						|
 | 
						|
				break;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		if ($args) {
 | 
						|
			$this->args = $args;
 | 
						|
		}
 | 
						|
 | 
						|
		$method = array_shift($parts);
 | 
						|
 | 
						|
		if ($method) {
 | 
						|
			$this->method = $method;
 | 
						|
		} else {
 | 
						|
			$this->method = 'index';
 | 
						|
		}
 | 
						|
	}
 | 
						|
} |