trait UseCacheBackendTrait in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Cache/UseCacheBackendTrait.php \Drupal\Core\Cache\UseCacheBackendTrait
- 9 core/lib/Drupal/Core/Cache/UseCacheBackendTrait.php \Drupal\Core\Cache\UseCacheBackendTrait
Provides methods to use a cache backend while respecting a 'use caches' flag.
Hierarchy
- trait \Drupal\Core\Cache\UseCacheBackendTrait
4 files declare their use of UseCacheBackendTrait
- DefaultPluginManager.php in core/
lib/ Drupal/ Core/ Plugin/ DefaultPluginManager.php - EntityDisplayRepository.php in core/
lib/ Drupal/ Core/ Entity/ EntityDisplayRepository.php - EntityFieldManager.php in core/
lib/ Drupal/ Core/ Entity/ EntityFieldManager.php - EntityTypeBundleInfo.php in core/
lib/ Drupal/ Core/ Entity/ EntityTypeBundleInfo.php
File
- core/
lib/ Drupal/ Core/ Cache/ UseCacheBackendTrait.php, line 8
Namespace
Drupal\Core\CacheView source
trait UseCacheBackendTrait {
/**
* Cache backend instance.
*
* @var \Drupal\Core\Cache\CacheBackendInterface
*/
protected $cacheBackend;
/**
* Flag whether caches should be used or skipped.
*
* @var bool
*/
protected $useCaches = TRUE;
/**
* Fetches from the cache backend, respecting the use caches flag.
*
* @param string $cid
* The cache ID of the data to retrieve.
*
* @return object|false
* The cache item or FALSE on failure.
*
* @see \Drupal\Core\Cache\CacheBackendInterface::get()
*/
protected function cacheGet($cid) {
if ($this->useCaches && $this->cacheBackend) {
return $this->cacheBackend
->get($cid);
}
return FALSE;
}
/**
* Stores data in the persistent cache, respecting the use caches flag.
*
* @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 array('node' => array(123), 'user' => array(92)).
*
* @see \Drupal\Core\Cache\CacheBackendInterface::set()
*/
protected function cacheSet($cid, $data, $expire = Cache::PERMANENT, array $tags = []) {
if ($this->cacheBackend && $this->useCaches) {
$this->cacheBackend
->set($cid, $data, $expire, $tags);
}
}
}