Same filename and directory in other branches
- 8.9.x core/lib/Drupal/Core/PageCache/ChainRequestPolicy.php
- 9 core/lib/Drupal/Core/PageCache/ChainRequestPolicy.php
Namespace
Drupal\Core\PageCache
File
core/lib/Drupal/Core/PageCache/ChainRequestPolicy.php
View source
<?php
namespace Drupal\Core\PageCache;
use Symfony\Component\HttpFoundation\Request;
class ChainRequestPolicy implements ChainRequestPolicyInterface {
protected $rules = [];
public function check(Request $request) {
$final_result = NULL;
foreach ($this->rules as $rule) {
$result = $rule
->check($request);
if ($result === static::DENY) {
return $result;
}
elseif ($result === static::ALLOW) {
$final_result = $result;
}
elseif (isset($result)) {
throw new \UnexpectedValueException('Return value of RequestPolicyInterface::check() must be one of RequestPolicyInterface::ALLOW, RequestPolicyInterface::DENY or NULL');
}
}
return $final_result;
}
public function addPolicy(RequestPolicyInterface $policy) {
$this->rules[] = $policy;
return $this;
}
}
Classes