header('version'); if (empty($version) && !$this->nocheck($request)) { // 指定show为0,前端不弹出此报错 return JsonService::fail('请求参数缺少接口版本号', [], 0, 0); } //获取控制器 try { $controller = str_replace('.', '\\', $request->controller()); $controller = '\\app\\kefuapi\\controller\\' . $controller . 'Controller'; $controllerClass = invoke($controller); if (($controllerClass instanceof BaseKefuController) === 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); } /** * @notes 是否验证版本号 * @param $request * @return bool * @author 段誉 * @date 2021/9/7 11:37 */ public function nocheck($request) { //特殊方法不验证版本号参数 $noCheck = []; $requestAction = $request->controller() . '/'. $request->action(); return in_array($requestAction, $noCheck); } }