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();
 }