You are here

public function NiceMenusBlock::getCacheContexts in Nice Menus 8

The cache contexts associated with this object.

These identify a specific variation/representation of the object.

Cache contexts are tokens: placeholders that are converted to cache keys by the @cache_contexts_manager service. The replacement value depends on the request context (the current URL, language, and so on). They're converted before storing an object in cache.

Return value

string[] An array of cache context tokens, used to generate a cache ID.

Overrides ContextAwarePluginBase::getCacheContexts

See also

\Drupal\Core\Cache\Context\CacheContextsManager::convertTokensToKeys()

File

src/Plugin/Block/NiceMenusBlock.php, line 236

Class

NiceMenusBlock
Provides a 'Nice menus' block.

Namespace

Drupal\nice_menus\Plugin\Block

Code

public function getCacheContexts() {

  // ::build() uses MenuActiveTrail::getActiveTrailIds()
  // to extend menu tree parameters, and those take the active menu trail
  // into account. Therefore, we must vary the rendered menu by the active
  // trail of the rendered menu.
  // Additional cache contexts, e.g. those that determine link text or
  // accessibility of a menu, will be bubbled automatically.
  $block_config = $this
    ->getBlockConfigExtended();
  $menu_name = $block_config['menu_name'];
  return Cache::mergeContexts(parent::getCacheContexts(), [
    'route.menu_active_trails:' . $menu_name,
  ]);
}