trait 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, ['node' => [123], 'user' => [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);
    }
  }
}Members
| Title Sort descending | Modifiers | Object type | Summary | 
|---|---|---|---|
| UseCacheBackendTrait::$cacheBackend | protected | property | Cache backend instance. | 
| UseCacheBackendTrait::$useCaches | protected | property | Flag whether caches should be used or skipped. | 
| UseCacheBackendTrait::cacheGet | protected | function | Fetches from the cache backend, respecting the use caches flag. | 
| UseCacheBackendTrait::cacheSet | protected | function | Stores data in the persistent cache, respecting the use caches flag. | 
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.
