You are here

class DenyAdminRoutes in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/dynamic_page_cache/src/PageCache/ResponsePolicy/DenyAdminRoutes.php \Drupal\dynamic_page_cache\PageCache\ResponsePolicy\DenyAdminRoutes
  2. 9 core/modules/dynamic_page_cache/src/PageCache/ResponsePolicy/DenyAdminRoutes.php \Drupal\dynamic_page_cache\PageCache\ResponsePolicy\DenyAdminRoutes

Cache policy for routes with the '_admin_route' option set.

This policy rule denies caching of responses generated for admin routes, because admin routes have very low cache hit ratios due to low traffic and form submissions.

Hierarchy

Expanded class hierarchy of DenyAdminRoutes

1 string reference to 'DenyAdminRoutes'
dynamic_page_cache.services.yml in core/modules/dynamic_page_cache/dynamic_page_cache.services.yml
core/modules/dynamic_page_cache/dynamic_page_cache.services.yml
1 service uses DenyAdminRoutes
dynamic_page_cache_deny_admin_routes in core/modules/dynamic_page_cache/dynamic_page_cache.services.yml
Drupal\dynamic_page_cache\PageCache\ResponsePolicy\DenyAdminRoutes

File

core/modules/dynamic_page_cache/src/PageCache/ResponsePolicy/DenyAdminRoutes.php, line 17

Namespace

Drupal\dynamic_page_cache\PageCache\ResponsePolicy
View source
class DenyAdminRoutes implements ResponsePolicyInterface {

  /**
   * The current route match.
   *
   * @var \Drupal\Core\Routing\RouteMatchInterface
   */
  protected $routeMatch;

  /**
   * Constructs a deny admin route page cache policy.
   *
   * @param \Drupal\Core\Routing\RouteMatchInterface $route_match
   *   The current route match.
   */
  public function __construct(RouteMatchInterface $route_match) {
    $this->routeMatch = $route_match;
  }

  /**
   * {@inheritdoc}
   */
  public function check(Response $response, Request $request) {
    if (($route = $this->routeMatch
      ->getRouteObject()) && $route
      ->getOption('_admin_route')) {
      return static::DENY;
    }
  }

}

Members