Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Cache/CacheBackendInterface.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 | 129ea1e6d783 |
line wrap: on
line source
<?php namespace Drupal\Core\Cache; /** * 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 indentifiers are case sensitive. * * @ingroup cache */ 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(); }