header('version'); if (empty($version) && !$this->nocheck($request)) { return JsonService::fail('请求参数缺少接口版本号', [], 0, 0); } //获取控制器 try { $controller = str_replace('.', '\\', $request->controller()); $controller = '\\app\\businessapi\\controller\\' . $controller . 'Controller'; $controllerClass = invoke($controller); if (($controllerClass instanceof BaseBusinesseController) === false) { throw new ControllerExtendException($controller, '404'); } } catch (ClassNotFoundException $e) { throw new HttpException(404, 'controller not exists:' . $e->getClass()); } //创建控制器对象 $request->controllerObject = invoke($controller); return $next($request); } public function nocheck($request) { //特殊方法不验证版本号参数 $noCheck = [ ]; $requestAction = $request->controller() . '/'. $request->action(); return in_array($requestAction, $noCheck); } }