public function ContextAny::getCacheContexts in Context 8.4
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/ Condition/ ContextAny.php, line 67
Class
- ContextAny
- Provides a 'Context (any)' condition.
Namespace
Drupal\context\Plugin\ConditionCode
public function getCacheContexts() {
$cache_contexts = parent::getCacheContexts();
$contexts = array_filter(array_map('trim', explode("\n", $this->configuration['values'])));
foreach ($contexts as $id) {
// Strip out `~` for negated contexts.
$id = ltrim($id, '~');
/** @var \Drupal\context\ContextInterface $context */
$context = $this->contextManager
->getContext($id);
/** @var \Drupal\Core\Condition\ConditionInterface[] $context_conditions */
$context_conditions = $context
->getConditions();
foreach ($context_conditions as $condition) {
$cache_contexts = Cache::mergeContexts($cache_contexts, $condition
->getCacheContexts());
}
}
return $cache_contexts;
}