You are here

public function MenuActiveTrailsCacheContext::getCacheableMetadata in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Cache/Context/MenuActiveTrailsCacheContext.php \Drupal\Core\Cache\Context\MenuActiveTrailsCacheContext::getCacheableMetadata()
  2. 9 core/lib/Drupal/Core/Cache/Context/MenuActiveTrailsCacheContext.php \Drupal\Core\Cache\Context\MenuActiveTrailsCacheContext::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/lib/Drupal/Core/Cache/Context/MenuActiveTrailsCacheContext.php, line 42

Class

MenuActiveTrailsCacheContext
Defines the MenuActiveTrailsCacheContext service.

Namespace

Drupal\Core\Cache\Context

Code

public function getCacheableMetadata($menu_name = NULL) {
  if (!$menu_name) {
    throw new \LogicException('No menu name provided for menu.active_trails cache context.');
  }
  $cacheable_metadata = new CacheableMetadata();
  return $cacheable_metadata
    ->setCacheTags([
    "config:system.menu.{$menu_name}",
  ]);
}