class PurlCacheContext in Persistent URL 8
Hierarchy
- class \Drupal\purl\Cache\Context\PurlCacheContext implements \Symfony\Component\EventDispatcher\EventSubscriberInterface, CacheContextInterface
Expanded class hierarchy of PurlCacheContext
1 string reference to 'PurlCacheContext'
1 service uses PurlCacheContext
File
- src/
Cache/ Context/ PurlCacheContext.php, line 12
Namespace
Drupal\purl\Cache\ContextView source
class PurlCacheContext implements CacheContextInterface, EventSubscriberInterface {
protected $contexts = array();
/**
* Returns the label of the cache context.
*
* @return string
* The label of the cache context.
*/
public static function getLabel() {
return t('PURL Context');
}
/**
* Returns the string representation of the cache context.
*
* A cache context service's name is used as a token (placeholder) cache key,
* and is then replaced with the string returned by this method.
*
* @return string
* The string representation of the cache context.
*/
public function getContext() {
return json_encode($this->contexts);
}
/**
* Gets the cacheability metadata for the context.
*
* 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.
*
*
* @return \Drupal\Core\Cache\CacheableMetadata
* A cacheable metadata object.
*/
public function getCacheableMetadata() {
return new CacheableMetadata();
}
/**
* Returns an array of event names this subscriber wants to listen to.
*
* The array keys are event names and the value can be:
*
* * The method name to call (priority defaults to 0)
* * An array composed of the method name to call and the priority
* * An array of arrays composed of the method names to call and respective
* priorities, or 0 if unset
*
* For instance:
*
* * array('eventName' => 'methodName')
* * array('eventName' => array('methodName', $priority))
* * array('eventName' => array(array('methodName1', $priority), array('methodName2')))
*
* @return array The event names to listen to
*/
public static function getSubscribedEvents() {
return [
PurlEvents::MODIFIER_MATCHED => array(
'onMatch',
),
];
}
public function onMatch(ModifierMatchedEvent $event) {
$this->contexts[$event
->getMethod()] = $event
->getModifier();
ksort($this->contexts);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
PurlCacheContext:: |
protected | property | ||
PurlCacheContext:: |
public | function |
Gets the cacheability metadata for the context. Overrides CacheContextInterface:: |
|
PurlCacheContext:: |
public | function |
Returns the string representation of the cache context. Overrides CacheContextInterface:: |
|
PurlCacheContext:: |
public static | function |
Returns the label of the cache context. Overrides CacheContextInterface:: |
|
PurlCacheContext:: |
public static | function | Returns an array of event names this subscriber wants to listen to. | |
PurlCacheContext:: |
public | function |