post(); break; case 'get': $arr = $request->get(); break; case 'delete': $arr = $request->get(); break; case 'put': parse_str($request->rawBody(), $arr); break; case 'patch': parse_str($request->rawBody(), $arr); break; } return $arr; } // 初始化 public function initialize($request) { try { $function = $request->action; $controller = $request->controller; $directory = new $controller(); if (!self::checklogin($directory->noNeedLogin, $function)) {//true为不用验证 if (method_exists($directory, $function)) { $token = $request->header();//获取请求头token if (!isset($token['token'])) { return tojson(10000, 'token不存在'); } else { $this->userInfo = getToken($token['token']); if (!is_array($this->userInfo)) { return $this->userInfo; } } } } $method = $request->method(); $method = strtolower($method); $param = self::getParam($method, $request); $module = $request->app; $controller2 = substr($controller, strpos($controller, 'controller') + 11); $validate_classname = "\app\\$module\\validate\\$controller2"; if (class_exists($validate_classname)) { $validate = new $validate_classname; if ($validate->hasScene($function)) {//验证场景 if (!$validate->scene($function)->check($param)) {//验证器 return tojson('10000', $validate->getError()); } } } //安全验证 $nosecure = nosecure($method, $directory->noSecure, $function, $param); if (!is_array($nosecure)) { return $nosecure; } //验签 $param2 = $param; $verifysign = verifysign($param2, $directory->noSize, $request);//加上验签 if ($verifysign) { if (!is_array($verifysign)) { return $verifysign; } } if (isset($param['page']) && !empty($param['page'])) { $param['page'] = $param['page'] - 1; if (!isset($param['pageSize'])) { $page = 0; $pageSize = 0; } else { $page = $param['pageSize'] * $param['page']; $pageSize = $param['pageSize']; } } else { $page = 0; $pageSize = 0; } $request->page = $page; $request->pageSize = $pageSize; $request->param = $param; $request->userInfo = $this->userInfo; } catch (\Exception $e) { return tojson(10000, $e->getMessage()); } catch (\Throwable $e) { return tojson(10000, $e->getMessage()); } } }