interface VariationCacheInterface

Same name in other branches
  1. 10 core/lib/Drupal/Core/Cache/VariationCacheInterface.php \Drupal\Core\Cache\VariationCacheInterface

Defines an interface for variation cache implementations.

A variation cache wraps any provided cache backend and adds support for cache contexts to it. The actual caching still happens in the original cache backend.

Hierarchy

Expanded class hierarchy of VariationCacheInterface

All classes that implement VariationCacheInterface

Related topics

4 files declare their use of VariationCacheInterface
AccessPolicyProcessor.php in core/lib/Drupal/Core/Session/AccessPolicyProcessor.php
AccessPolicyProcessorTest.php in core/tests/Drupal/Tests/Core/Session/AccessPolicyProcessorTest.php
DynamicPageCacheSubscriber.php in core/modules/dynamic_page_cache/src/EventSubscriber/DynamicPageCacheSubscriber.php
ResourceObjectNormalizationCacher.php in core/modules/jsonapi/src/EventSubscriber/ResourceObjectNormalizationCacher.php
2 string references to 'VariationCacheInterface'
dynamic_page_cache.services.yml in core/modules/dynamic_page_cache/dynamic_page_cache.services.yml
core/modules/dynamic_page_cache/dynamic_page_cache.services.yml
jsonapi.services.yml in core/modules/jsonapi/jsonapi.services.yml
core/modules/jsonapi/jsonapi.services.yml
2 services use VariationCacheInterface
variation_cache.dynamic_page_cache in core/modules/dynamic_page_cache/dynamic_page_cache.services.yml
Drupal\Core\Cache\VariationCacheInterface
variation_cache.jsonapi_normalizations in core/modules/jsonapi/jsonapi.services.yml
Drupal\Core\Cache\VariationCacheInterface

File

core/lib/Drupal/Core/Cache/VariationCacheInterface.php, line 14

Namespace

Drupal\Core\Cache
View source
interface VariationCacheInterface {
    
    /**
     * Gets a cache entry based on cache keys.
     *
     * @param string[] $keys
     *   The cache keys to retrieve the cache entry for.
     * @param \Drupal\Core\Cache\CacheableDependencyInterface $initial_cacheability
     *   The cache metadata of the data to store before other systems had a chance
     *   to adjust it. This is also commonly known as "pre-bubbling" cacheability.
     *
     * @return object|false
     *   The cache item or FALSE on failure.
     *
     * @see \Drupal\Core\Cache\CacheBackendInterface::get()
     */
    public function get(array $keys, CacheableDependencyInterface $initial_cacheability);
    
    /**
     * Stores data in the cache.
     *
     * @param string[] $keys
     *   The cache keys of the data to store.
     * @param mixed $data
     *   The data to store in the cache.
     * @param \Drupal\Core\Cache\CacheableDependencyInterface $cacheability
     *   The cache metadata of the data to store.
     * @param \Drupal\Core\Cache\CacheableDependencyInterface $initial_cacheability
     *   The cache metadata of the data to store before other systems had a chance
     *   to adjust it. This is also commonly known as "pre-bubbling" cacheability.
     *
     * @see \Drupal\Core\Cache\CacheBackendInterface::set()
     *
     * @throws \LogicException
     *   Thrown when cacheability is provided that does not contain a cache
     *   context or does not completely contain the initial cacheability.
     */
    public function set(array $keys, $data, CacheableDependencyInterface $cacheability, CacheableDependencyInterface $initial_cacheability) : void;
    
    /**
     * Deletes an item from the cache.
     *
     * To stay consistent with ::get(), this only affects the active variation,
     * not all possible variations for the associated cache contexts.
     *
     * @param string[] $keys
     *   The cache keys of the data to delete.
     * @param \Drupal\Core\Cache\CacheableDependencyInterface $initial_cacheability
     *   The cache metadata of the data to store before other systems had a chance
     *   to adjust it. This is also commonly known as "pre-bubbling" cacheability.
     *
     * @see \Drupal\Core\Cache\CacheBackendInterface::delete()
     */
    public function delete(array $keys, CacheableDependencyInterface $initial_cacheability) : void;
    
    /**
     * Marks a cache item as invalid.
     *
     * To stay consistent with ::get(), this only affects the active variation,
     * not all possible variations for the associated cache contexts.
     *
     * @param string[] $keys
     *   The cache keys of the data to invalidate.
     * @param \Drupal\Core\Cache\CacheableDependencyInterface $initial_cacheability
     *   The cache metadata of the data to store before other systems had a chance
     *   to adjust it. This is also commonly known as "pre-bubbling" cacheability.
     *
     * @see \Drupal\Core\Cache\CacheBackendInterface::invalidate()
     */
    public function invalidate(array $keys, CacheableDependencyInterface $initial_cacheability) : void;

}

Members

Title Sort descending Modifiers Object type Summary Overrides
VariationCacheInterface::delete public function Deletes an item from the cache. 1
VariationCacheInterface::get public function Gets a cache entry based on cache keys. 1
VariationCacheInterface::invalidate public function Marks a cache item as invalid. 1
VariationCacheInterface::set public function Stores data in the cache. 1

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