public function __construct($packages, $path_info = '/') { self::$pre_controller = $this; $this->packages = $packages; $this->load = new Load($this); $this->load->config('segments'); $this->segments = []; $path_info = trim($path_info, DIRECTORY_SEPARATOR); $args = $path_info === '' ? [] : explode(DIRECTORY_SEPARATOR, $path_info); foreach ($this->config['segments'] as $key => $value) { $this->segments[$key] = isset($args[0]) && in_array($args[0], array_slice($value, 1)) ? array_shift($args) : $value[0]; } $this->segments['args'] = $args; $this->load->file('core', 'Controller'); $this->load->controller($this->segments['target']); call_user_func_array([self::$controller, $this->segments['action']], $this->segments['args']); }
public function controller($filename) { $classname = ucfirst($filename); require_once $this->choose('controllers', NULL, $classname, 'php'); Pre_controller::$controller = new $classname(); }