public static function run($app, $controller = null, $action = null) { self::$app = $app; $autoload = AutoLoad::getInstance(); //加载配置文件 $config = DOCUMENT_ROOT . DS . 'app' . DS . $app . DS . 'config.php'; if (!is_file($config)) { throw new \Exception($app . '应用缺少config文件', 0); } else { require $config; self::$config = new \Config(); self::$config->loader($autoload); } //分发路由 $route = new Route($app); $route->execute($controller, $action); }
/** * Метод запуска приложения * @throws Exception */ public static function run() { try { // Загрузка и объединение конфигов if (!file_exists(PSR4_ROOT . '/config.local.php')) { throw new Exception('You have to create file config.local.php with your settings'); } self::$config = (array) (require PSR4_ROOT . '/config.local.php') + (array) (require PSR4_ROOT . '/config.php'); // Маршрутизация запроса $router = Router::getInstance(); $route = $router->route($_SERVER['REQUEST_URI']); // Вызов обработчика self::_runAction($route['controller'], $route['action'], $route['params']); } catch (HttpException $e) { if ($e->getCode() === 404) { self::_runAction('error', '404', []); } else { self::_runAction('error', '500', ['message' => $e->getMessage()]); } } catch (\Exception $e) { self::_runAction('error', '500', ['message' => $e->getMessage()]); } }