class MemoryCache
Same name in other branches
- 9 core/lib/Drupal/Core/Cache/MemoryCache/MemoryCache.php \Drupal\Core\Cache\MemoryCache\MemoryCache
- 8.9.x core/lib/Drupal/Core/Cache/MemoryCache/MemoryCache.php \Drupal\Core\Cache\MemoryCache\MemoryCache
- 11.x core/lib/Drupal/Core/Cache/MemoryCache/MemoryCache.php \Drupal\Core\Cache\MemoryCache\MemoryCache
Defines a memory cache implementation.
Stores cache items in memory using a PHP array.
Hierarchy
- class \Drupal\Core\Cache\MemoryBackend implements \Drupal\Core\Cache\CacheBackendInterface, \Drupal\Core\Cache\CacheTagsInvalidatorInterface
- class \Drupal\Core\Cache\MemoryCache\MemoryCache extends \Drupal\Core\Cache\MemoryBackend implements \Drupal\Core\Cache\MemoryCache\MemoryCacheInterface
Expanded class hierarchy of MemoryCache
Related topics
3 files declare their use of MemoryCache
- ConfigEntityStorageTest.php in core/
tests/ Drupal/ Tests/ Core/ Config/ Entity/ ConfigEntityStorageTest.php - KeyValueEntityStorageTest.php in core/
tests/ Drupal/ Tests/ Core/ Entity/ KeyValueStore/ KeyValueEntityStorageTest.php - SqlContentEntityStorageTest.php in core/
tests/ Drupal/ Tests/ Core/ Entity/ Sql/ SqlContentEntityStorageTest.php
2 string references to 'MemoryCache'
- core.services.yml in core/
core.services.yml - core/core.services.yml
- system.services.yml in core/
modules/ system/ system.services.yml - core/modules/system/system.services.yml
2 services use MemoryCache
File
-
core/
lib/ Drupal/ Core/ Cache/ MemoryCache/ MemoryCache.php, line 15
Namespace
Drupal\Core\Cache\MemoryCacheView source
class MemoryCache extends MemoryBackend implements MemoryCacheInterface {
/**
* Prepares a cached item.
*
* Checks that items are either permanent or did not expire, and returns data
* as appropriate.
*
* @param object $cache
* An item loaded from self::get() or self::getMultiple().
* @param bool $allow_invalid
* (optional) If TRUE, cache items may be returned even if they have expired
* or been invalidated. Defaults to FALSE.
*
* @return mixed
* The item with data as appropriate or FALSE if there is no
* valid item to load.
*/
protected function prepareItem($cache, $allow_invalid = FALSE) {
if (!isset($cache->data)) {
return FALSE;
}
// Check expire time.
$cache->valid = $cache->expire == static::CACHE_PERMANENT || $cache->expire >= $this->time
->getRequestTime();
if (!$allow_invalid && !$cache->valid) {
return FALSE;
}
return $cache;
}
/**
* {@inheritdoc}
*/
public function set($cid, $data, $expire = MemoryCacheInterface::CACHE_PERMANENT, array $tags = []) {
assert(Inspector::assertAllStrings($tags), 'Cache tags must be strings.');
$tags = array_unique($tags);
$this->cache[$cid] = (object) [
'cid' => $cid,
'data' => $data,
'created' => $this->time
->getRequestTime(),
'expire' => $expire,
'tags' => $tags,
];
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
CacheBackendInterface::CACHE_PERMANENT | constant | Indicates that the item should never be removed unless explicitly deleted. | |||
MemoryBackend::$cache | protected | property | Array to store cache objects. | ||
MemoryBackend::delete | public | function | Deletes an item from the cache. | Overrides CacheBackendInterface::delete | 1 |
MemoryBackend::deleteAll | public | function | Deletes all cache items in a bin. | Overrides CacheBackendInterface::deleteAll | |
MemoryBackend::deleteMultiple | public | function | Deletes multiple items from the cache. | Overrides CacheBackendInterface::deleteMultiple | |
MemoryBackend::garbageCollection | public | function | Performs garbage collection on a cache bin. | Overrides CacheBackendInterface::garbageCollection | |
MemoryBackend::get | public | function | Returns data from the persistent cache. | Overrides CacheBackendInterface::get | 1 |
MemoryBackend::getMultiple | public | function | Returns data from the persistent cache when given an array of cache IDs. | Overrides CacheBackendInterface::getMultiple | |
MemoryBackend::getRequestTime | protected | function | Wrapper method for REQUEST_TIME constant. | ||
MemoryBackend::invalidate | public | function | Marks a cache item as invalid. | Overrides CacheBackendInterface::invalidate | |
MemoryBackend::invalidateAll | public | function | Marks all cache items as invalid. | Overrides CacheBackendInterface::invalidateAll | |
MemoryBackend::invalidateMultiple | public | function | Marks cache items as invalid. | Overrides CacheBackendInterface::invalidateMultiple | |
MemoryBackend::invalidateTags | public | function | |||
MemoryBackend::removeBin | public | function | Remove a cache bin. | Overrides CacheBackendInterface::removeBin | |
MemoryBackend::reset | public | function | Reset statically cached variables. | ||
MemoryBackend::setMultiple | public | function | Store multiple items in the persistent cache. | Overrides CacheBackendInterface::setMultiple | |
MemoryBackend::__construct | public | function | Constructs a MemoryBackend object. | ||
MemoryBackend::__sleep | public | function | Prevents data stored in memory backends from being serialized. | ||
MemoryCache::prepareItem | protected | function | Prepares a cached item. | Overrides MemoryBackend::prepareItem | |
MemoryCache::set | public | function | Stores data in the persistent cache. | Overrides MemoryBackend::set |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.