コード例 #1
0
 /**
  * Should be run before routes are executed
  * Will abort if etag match is found
  * @param Route $route
  * @param Request $request
  * @param Response|null $response
  * @return Response|null
  * @throws HttpException
  */
 public function before(Route $route, Request $request, $response = null)
 {
     /**
      * TODO implement other Request Methods
      */
     if (!in_array($request->method(), ['GET', 'HEAD'])) {
         return null;
     }
     if ($this->routecache->checkClientHasValidCache()) {
         $response = new Response();
         $response->setNotModified();
         return $response;
     }
     $response = $this->routecache->getResponseFromCache();
     if (empty($response)) {
         $route->after('cache.after');
     }
     return $response;
 }
コード例 #2
0
 /**
  * Apply the applicable after filters to the route.
  *
  * @param  \Illuminate\Routing\Controller  $instance
  * @param  \Illuminate\Routing\Route  $route
  * @param  \Illuminate\Http\Request  $request
  * @param  string  $method
  * @return mixed
  */
 protected function assignAfter($instance, $route, $request, $method)
 {
     foreach ($instance->getAfterFilters() as $filter) {
         // If the filter applies, we will add it to the route, since it has already been
         // registered on the filterer by the controller, and will just let the normal
         // router take care of calling these filters so we do not duplicate logics.
         if ($this->filterApplies($filter, $request, $method)) {
             $route->after($this->getAssignableAfter($filter));
         }
     }
 }