function LayoutBuilderIsActiveCacheContext::getCacheableMetadata

Same name and namespace in other branches
  1. 9 core/modules/layout_builder/src/Cache/LayoutBuilderIsActiveCacheContext.php \Drupal\layout_builder\Cache\LayoutBuilderIsActiveCacheContext::getCacheableMetadata()
  2. 8.9.x core/modules/layout_builder/src/Cache/LayoutBuilderIsActiveCacheContext.php \Drupal\layout_builder\Cache\LayoutBuilderIsActiveCacheContext::getCacheableMetadata()
  3. 11.x core/modules/layout_builder/src/Cache/LayoutBuilderIsActiveCacheContext.php \Drupal\layout_builder\Cache\LayoutBuilderIsActiveCacheContext::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.

Overrides CalculatedCacheContextInterface::getCacheableMetadata

File

core/modules/layout_builder/src/Cache/LayoutBuilderIsActiveCacheContext.php, line 63

Class

LayoutBuilderIsActiveCacheContext
Determines whether Layout Builder is active for a given entity type or not.

Namespace

Drupal\layout_builder\Cache

Code

public function getCacheableMetadata($entity_type_id = NULL) {
    if (!$entity_type_id) {
        throw new \LogicException('Missing entity type ID');
    }
    $cacheable_metadata = new CacheableMetadata();
    if ($display = $this->getDisplay($entity_type_id)) {
        $cacheable_metadata->addCacheableDependency($display);
    }
    return $cacheable_metadata;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.