public function NodeAccessGrantsCacheContext::getCacheableMetadata in Drupal 9
Same name and namespace in other branches
- 8 core/modules/node/src/Cache/NodeAccessGrantsCacheContext.php \Drupal\node\Cache\NodeAccessGrantsCacheContext::getCacheableMetadata()
- 10 core/modules/node/src/Cache/NodeAccessGrantsCacheContext.php \Drupal\node\Cache\NodeAccessGrantsCacheContext::getCacheableMetadata()
Gets the cacheability metadata for the context based on the parameter value.
There are three valid cases for the returned CacheableMetadata object:
- An empty object means this can be optimized away safely.
- A max-age of 0 means that this context can never be optimized away. It will never bubble up and cache tags will not be used.
- Any non-zero max-age and cache tags will bubble up into the cache item if this is optimized away to allow for invalidation if the context value changes.
Parameters
string|null $parameter: The parameter, or NULL to indicate all possible parameter values.
Return value
\Drupal\Core\Cache\CacheableMetadata A cacheable metadata object.
Throws
\LogicException Thrown if the passed in parameter is invalid.
Overrides CalculatedCacheContextInterface::getCacheableMetadata
File
- core/
modules/ node/ src/ Cache/ NodeAccessGrantsCacheContext.php, line 84
Class
- NodeAccessGrantsCacheContext
- Defines the node access view cache context service.
Namespace
Drupal\node\CacheCode
public function getCacheableMetadata($operation = NULL) {
$cacheable_metadata = new CacheableMetadata();
if (!\Drupal::moduleHandler()
->getImplementations('node_grants')) {
return $cacheable_metadata;
}
// The node grants may change if the user is updated. (The max-age is set to
// zero below, but sites may override this cache context, and change it to a
// non-zero value. In such cases, this cache tag is needed for correctness.)
$cacheable_metadata
->setCacheTags([
'user:' . $this->user
->id(),
]);
// If the site is using node grants, this cache context can not be
// optimized.
return $cacheable_metadata
->setCacheMaxAge(0);
}