interface CacheBackendInterface in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Cache/CacheBackendInterface.php \Drupal\Core\Cache\CacheBackendInterface
- 9 core/lib/Drupal/Core/Cache/CacheBackendInterface.php \Drupal\Core\Cache\CacheBackendInterface
Defines an interface for cache implementations.
All cache implementations have to implement this interface. Drupal\Core\Cache\DatabaseBackend provides the default implementation, which can be consulted as an example.
The cache identifiers are case sensitive.
Hierarchy
- interface \Drupal\Core\Cache\CacheBackendInterface
Expanded class hierarchy of CacheBackendInterface
All classes that implement CacheBackendInterface
Related topics
112 files declare their use of CacheBackendInterface
- ActionManager.php in core/
lib/ Drupal/ Core/ Action/ ActionManager.php - AliasManager.php in core/
modules/ path_alias/ src/ AliasManager.php - AliasWhitelist.php in core/
modules/ path_alias/ src/ AliasWhitelist.php - ArchiverManager.php in core/
lib/ Drupal/ Core/ Archiver/ ArchiverManager.php - AssetResolver.php in core/
lib/ Drupal/ Core/ Asset/ AssetResolver.php
8 string references to 'CacheBackendInterface'
- core.services.yml in core/
core.services.yml - core/core.services.yml
- 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
- migrate.services.yml in core/
modules/ migrate/ migrate.services.yml - core/modules/migrate/migrate.services.yml
- module_cachebin.services.yml in core/
modules/ system/ tests/ modules/ module_cachebin/ module_cachebin.services.yml - core/modules/system/tests/modules/module_cachebin/module_cachebin.services.yml
17 services use CacheBackendInterface
- cache.bootstrap in core/
core.services.yml - Drupal\Core\Cache\CacheBackendInterface
- cache.config in core/
core.services.yml - Drupal\Core\Cache\CacheBackendInterface
- cache.data in core/
core.services.yml - Drupal\Core\Cache\CacheBackendInterface
- cache.default in core/
core.services.yml - Drupal\Core\Cache\CacheBackendInterface
- cache.discovery in core/
core.services.yml - Drupal\Core\Cache\CacheBackendInterface
File
- core/
lib/ Drupal/ Core/ Cache/ CacheBackendInterface.php, line 16
Namespace
Drupal\Core\CacheView source
interface CacheBackendInterface {
/**
* Indicates that the item should never be removed unless explicitly deleted.
*/
const CACHE_PERMANENT = -1;
/**
* Returns data from the persistent cache.
*
* @param string $cid
* The cache ID of the data to retrieve.
* @param bool $allow_invalid
* (optional) If TRUE, a cache item may be returned even if it is expired or
* has been invalidated. Such items may sometimes be preferred, if the
* alternative is recalculating the value stored in the cache, especially
* if another concurrent request is already recalculating the same value.
* The "valid" property of the returned object indicates whether the item is
* valid or not. Defaults to FALSE.
*
* @return object|false
* The cache item or FALSE on failure.
*
* @see \Drupal\Core\Cache\CacheBackendInterface::getMultiple()
*/
public function get($cid, $allow_invalid = FALSE);
/**
* Returns data from the persistent cache when given an array of cache IDs.
*
* @param array $cids
* An array of cache IDs for the data to retrieve. This is passed by
* reference, and will have the IDs successfully returned from cache
* removed.
* @param bool $allow_invalid
* (optional) If TRUE, cache items may be returned even if they have expired
* or been invalidated. Such items may sometimes be preferred, if the
* alternative is recalculating the value stored in the cache, especially
* if another concurrent thread is already recalculating the same value. The
* "valid" property of the returned objects indicates whether the items are
* valid or not. Defaults to FALSE.
*
* @return array
* An array of cache item objects indexed by cache ID.
*
* @see \Drupal\Core\Cache\CacheBackendInterface::get()
*/
public function getMultiple(&$cids, $allow_invalid = FALSE);
/**
* Stores data in the persistent cache.
*
* Core cache implementations set the created time on cache item with
* microtime(TRUE) rather than REQUEST_TIME_FLOAT, because the created time
* of cache items should match when they are created, not when the request
* started. Apart from being more accurate, this increases the chance an
* item will legitimately be considered valid.
*
* @param string $cid
* The cache ID of the data to store.
* @param mixed $data
* The data to store in the cache.
* Some storage engines only allow objects up to a maximum of 1MB in size to
* be stored by default. When caching large arrays or similar, take care to
* ensure $data does not exceed this size.
* @param int $expire
* One of the following values:
* - CacheBackendInterface::CACHE_PERMANENT: Indicates that the item should
* not be removed unless it is deleted explicitly.
* - A Unix timestamp: Indicates that the item will be considered invalid
* after this time, i.e. it will not be returned by get() unless
* $allow_invalid has been set to TRUE. When the item has expired, it may
* be permanently deleted by the garbage collector at any time.
* @param array $tags
* An array of tags to be stored with the cache item. These should normally
* identify objects used to build the cache item, which should trigger
* cache invalidation when updated. For example if a cached item represents
* a node, both the node ID and the author's user ID might be passed in as
* tags. For example ['node:123', 'node:456', 'user:789'].
*
* @see \Drupal\Core\Cache\CacheBackendInterface::get()
* @see \Drupal\Core\Cache\CacheBackendInterface::getMultiple()
*/
public function set($cid, $data, $expire = Cache::PERMANENT, array $tags = []);
/**
* Store multiple items in the persistent cache.
*
* @param array $items
* An array of cache items, keyed by cid. In the form:
* @code
* $items = array(
* $cid => array(
* // Required, will be automatically serialized if not a string.
* 'data' => $data,
* // Optional, defaults to CacheBackendInterface::CACHE_PERMANENT.
* 'expire' => CacheBackendInterface::CACHE_PERMANENT,
* // (optional) The cache tags for this item, see CacheBackendInterface::set().
* 'tags' => array(),
* ),
* );
* @endcode
*/
public function setMultiple(array $items);
/**
* Deletes an item from the cache.
*
* If the cache item is being deleted because it is no longer "fresh", you may
* consider using invalidate() instead. This allows callers to retrieve the
* invalid item by calling get() with $allow_invalid set to TRUE. In some cases
* an invalid item may be acceptable rather than having to rebuild the cache.
*
* @param string $cid
* The cache ID to delete.
*
* @see \Drupal\Core\Cache\CacheBackendInterface::invalidate()
* @see \Drupal\Core\Cache\CacheBackendInterface::deleteMultiple()
* @see \Drupal\Core\Cache\CacheBackendInterface::deleteAll()
*/
public function delete($cid);
/**
* Deletes multiple items from the cache.
*
* If the cache items are being deleted because they are no longer "fresh",
* you may consider using invalidateMultiple() instead. This allows callers to
* retrieve the invalid items by calling get() with $allow_invalid set to TRUE.
* In some cases an invalid item may be acceptable rather than having to
* rebuild the cache.
*
* @param array $cids
* An array of cache IDs to delete.
*
* @see \Drupal\Core\Cache\CacheBackendInterface::invalidateMultiple()
* @see \Drupal\Core\Cache\CacheBackendInterface::delete()
* @see \Drupal\Core\Cache\CacheBackendInterface::deleteAll()
*/
public function deleteMultiple(array $cids);
/**
* Deletes all cache items in a bin.
*
* @see \Drupal\Core\Cache\CacheBackendInterface::invalidateAll()
* @see \Drupal\Core\Cache\CacheBackendInterface::delete()
* @see \Drupal\Core\Cache\CacheBackendInterface::deleteMultiple()
*/
public function deleteAll();
/**
* Marks a cache item as invalid.
*
* Invalid items may be returned in later calls to get(), if the $allow_invalid
* argument is TRUE.
*
* @param string $cid
* The cache ID to invalidate.
*
* @see \Drupal\Core\Cache\CacheBackendInterface::delete()
* @see \Drupal\Core\Cache\CacheBackendInterface::invalidateMultiple()
* @see \Drupal\Core\Cache\CacheBackendInterface::invalidateAll()
*/
public function invalidate($cid);
/**
* Marks cache items as invalid.
*
* Invalid items may be returned in later calls to get(), if the $allow_invalid
* argument is TRUE.
*
* @param string[] $cids
* An array of cache IDs to invalidate.
*
* @see \Drupal\Core\Cache\CacheBackendInterface::deleteMultiple()
* @see \Drupal\Core\Cache\CacheBackendInterface::invalidate()
* @see \Drupal\Core\Cache\CacheBackendInterface::invalidateAll()
*/
public function invalidateMultiple(array $cids);
/**
* Marks all cache items as invalid.
*
* Invalid items may be returned in later calls to get(), if the $allow_invalid
* argument is TRUE.
*
* @see \Drupal\Core\Cache\CacheBackendInterface::deleteAll()
* @see \Drupal\Core\Cache\CacheBackendInterface::invalidate()
* @see \Drupal\Core\Cache\CacheBackendInterface::invalidateMultiple()
*/
public function invalidateAll();
/**
* Performs garbage collection on a cache bin.
*
* The backend may choose to delete expired or invalidated items.
*/
public function garbageCollection();
/**
* Remove a cache bin.
*/
public function removeBin();
}