Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ChainResponsePolicy.php

class ChainResponsePolicy

Same name in this branch
  1. 11.1.x core/lib/Drupal/Core/ProxyClass/PageCache/ChainResponsePolicy.php \Drupal\Core\ProxyClass\PageCache\ChainResponsePolicy

Implements a compound response policy.

When evaluating the compound policy, all of the contained rules are applied to the response. The overall result is computed according to the following rules:

<ol> <li>Returns static::DENY if any of the rules evaluated to static::DENY</li> <li>Otherwise returns NULL</li> </ol>

Hierarchy

  • class \Drupal\Core\PageCache\ChainResponsePolicy implements \Drupal\Core\PageCache\ChainResponsePolicyInterface

Expanded class hierarchy of ChainResponsePolicy

1 string reference to 'ChainResponsePolicy'
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 ChainResponsePolicy
dynamic_page_cache_response_policy in core/modules/dynamic_page_cache/dynamic_page_cache.services.yml
Drupal\Core\PageCache\ChainResponsePolicy

File

core/lib/Drupal/Core/PageCache/ChainResponsePolicy.php, line 20

Namespace

Drupal\Core\PageCache
View source
class ChainResponsePolicy implements ChainResponsePolicyInterface {
    
    /**
     * A list of policy rules to apply when this policy is checked.
     *
     * @var \Drupal\Core\PageCache\ResponsePolicyInterface[]
     */
    protected $rules = [];
    
    /**
     * {@inheritdoc}
     */
    public function check(Response $response, Request $request) {
        foreach ($this->rules as $rule) {
            $result = $rule->check($response, $request);
            if ($result === static::DENY) {
                return $result;
            }
            elseif (isset($result)) {
                throw new \UnexpectedValueException('Return value of ResponsePolicyInterface::check() must be one of ResponsePolicyInterface::DENY or NULL');
            }
        }
    }
    
    /**
     * {@inheritdoc}
     */
    public function addPolicy(ResponsePolicyInterface $policy) {
        $this->rules[] = $policy;
        return $this;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
ChainResponsePolicy::$rules protected property A list of policy rules to apply when this policy is checked.
ChainResponsePolicy::addPolicy public function Add a policy to the list of policy rules. Overrides ChainResponsePolicyInterface::addPolicy
ChainResponsePolicy::check public function Determines whether it is save to store a page in the cache. Overrides ResponsePolicyInterface::check
ResponsePolicyInterface::DENY constant Deny storage of a page in the cache.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal