/** * 处理指定的请求 * * @param Request $request 请求实例 * @return Response 产生的响应 * @throws NotFoundHttpException 如果请求的路由无效 */ public function handleRequest($request) { if (empty($this->catchAll)) { list($route, $params) = $request->resolve(); } else { $route = $this->catchAll[0]; $params = $this->catchAll; unset($params[0]); } try { Leaps::trace("Route requested: '{$route}'", __METHOD__); $this->requestedRoute = $route; $result = $this->runAction($route, $params); if ($result instanceof Response) { return $result; } else { $response = $this->getResponse(); if ($result !== null) { $response->data = $result; } return $response; } } catch (InvalidRouteException $e) { throw new NotFoundHttpException(Leaps::t('leaps', 'Page not found.'), $e->getCode(), $e); } }