Example #1
0
 /**
  * 处理指定的请求
  *
  * @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);
     }
 }