Beispiel #1
0
 /**
  * 处理中间件
  */
 private function handleMiddleware()
 {
     Http\Middleware\QpMiddleware::handleMiddleware();
 }
Beispiel #2
0
 /**
  * 设置路由
  *
  * @param array $router
  */
 public static function set(array $router)
 {
     if (self::$modules_status == 0) {
         self::$modules_status = 1;
     }
     if (Base::hasMatched()) {
         return;
     }
     // 匹配前缀
     $prefix = strval(array_get($router, 'prefix', ''));
     if ($prefix === "") {
         $prefix = self::$prefix;
     }
     if ($prefix !== Base::getPrefix()) {
         return;
     }
     // 匹配控制器
     $controllers = array_get($router, 'controllers', []);
     if (!is_array($controllers) || empty($controllers)) {
         throw new \InvalidArgumentException("路由配置有误,'controllers'的值必须是非空数组");
     }
     $controller = strval(array_get($controllers, Base::getController(), ''));
     if (empty($controller)) {
         return;
     }
     // 处理命名空间
     $namespace = strval(array_get($router, 'namespace', ''));
     self::handleConfigNamespace($namespace, $prefix);
     // 获取中间件,延迟处理 - 需要先加载其他模块才能处理中间件
     $middleware = array_get($router, 'middlewares', []);
     Http\Middleware\QpMiddleware::handleConfigMiddleware($middleware, $namespace);
     Base::saveRouterData(['namespace' => $namespace, 'controller' => $controller, 'middleware' => $middleware]);
     Base::match();
 }
Beispiel #3
0
 /**
  * 设置处理状态:中间件校验不通过,终止处理
  *
  * @param   string  $message    响应消息
  * @param   int     $status     响应状态码
  */
 public static function end(string $message = "", int $status = 200)
 {
     Base::end($message, $status);
 }