示例#1
0
 /**
  * 处理中间件
  *
  * @throws  \ErrorException
  */
 public static function handleMiddleware()
 {
     if (self::$handle_status != 0) {
         throw new \ErrorException("非法的QP框架使用方法 - 仅仅只能处理一次中间件,并且由框架底层自动处理!");
     }
     foreach (\Qp\Kernel\Http\Router\QpRouter::getMatchedData()['middleware'] as $middleware) {
         self::$response_message = "";
         self::$response_status = 200;
         (new $middleware())->handle();
         if (self::$handle_status == 2) {
             if (json_decode(self::$response_message, true) != []) {
                 \Qp\Kernel\Response::response()->setContentType('application/json');
             }
             \Qp\Kernel\Response::send(self::$response_message, self::$response_status);
             exit;
         }
     }
     self::$handle_status = 3;
 }
示例#2
0
文件: Main.php 项目: q-phalcon/kernel
 /**
  * 处理用户请求的路由
  * 匹配失败直接抛出异常,成功则返回设置过的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;
 }