Exemple #1
0
 /**
  * 处理用户请求的路由
  * 匹配失败直接抛出异常,成功则返回设置过的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;
 }