function RouteAccessResponseSubscriber::onRespond
Bubbles the route's access result' cacheability metadata.
Parameters
\Symfony\Component\HttpKernel\Event\ResponseEvent $event: The event to process.
File
-
core/
lib/ Drupal/ Core/ EventSubscriber/ RouteAccessResponseSubscriber.php, line 32
Class
- RouteAccessResponseSubscriber
- Response subscriber to bubble the route's access result's cacheability.
Namespace
Drupal\Core\EventSubscriberCode
public function onRespond(ResponseEvent $event) {
if (!$event->isMainRequest()) {
return;
}
$response = $event->getResponse();
if (!$response instanceof CacheableResponseInterface) {
return;
}
$request = $event->getRequest();
// It is possible that route access checking did not occur, for example,
// when an exception was thrown during route matching. This could happen in
// an implementation of \Drupal\Core\Routing\EnhancerInterface.
// @see \Drupal\jsonapi\Revisions\ResourceVersionRouteEnhancer::enhance()
if ($request->attributes
->has(AccessAwareRouterInterface::ACCESS_RESULT)) {
$response->addCacheableDependency($request->attributes
->get(AccessAwareRouterInterface::ACCESS_RESULT));
}
}