/** * 处理用户请求的路由 * 匹配失败直接抛出异常,成功则返回设置过的Phalcon路由对象 * * @return \Phalcon\Mvc\Router Phalcon的路由对象 * @throws \ErrorException */ private function handleRouter() { require_once QP_APP_PATH . "routers.php"; if (QR::hasMatched() == false) { echo (new \App\Controllers\IndexController())->notFoundAction(); exit; } $matched_router_data = QR::getMatchedData(); $ns = $matched_router_data['namespace']; $ctrl = $matched_router_data['controller']; $m = QR::getMethod(); if (!method_exists($ns . "\\" . $ctrl . "Controller", $m . "Action")) { echo (new \App\Controllers\IndexController())->notFoundAction(); exit; } $router = new \Phalcon\Mvc\Router(); $router->setDefaults(["namespace" => $ns, "controller" => $ctrl, "action" => $m]); return $router; }