Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Cache/UseCacheBackendTrait.php @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\Core\Cache; /** * Provides methods to use a cache backend while respecting a 'use caches' flag. */ 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); } } }