/**
  * Handle the given request and response in the case of a routing error.
  * 
  * @param Request  $request
  * @param Response $response
  * @return mixed
  */
 public function handle(Request $request, Response $response)
 {
     $status = $response->status();
     $response->content("{$status} error.");
     if ($this->view->exists("errors/{$status}")) {
         $response->content($this->view->create("errors/{$status}", array('http_host' => $request->host(), 'request_uri' => $request->path(), 'signature' => $request->server('server_signature'))));
     }
     return $response;
 }
Beispiel #2
0
 /**
  * Test a request against a route.
  * 
  * Accepts an optional extra callback for filtering matched routes and their
  * parameters. This callback is executed after testing the route against
  * the router's filters.
  * 
  * Fires the 'router.prefilter' event before testing against filters.
  * 
  * @param Request  $request
  * @param Route    $route
  * @param callable $callback [optional]
  * @return bool
  */
 protected function testMatch(Request $request, Route $route, $callback = null)
 {
     $path = $this->stripBase($request->path());
     $pattern = $this->preparePattern($route->path());
     if (preg_match($pattern, $path, $matches)) {
         $route->matches($matches);
         $this->event('router.prefilter', array($route));
         if ($this->testMatchFilters($route, $callback)) {
             return true;
         }
     }
     return false;
 }