123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- namespace Drupal\Core\Cache\MemoryCache;
- use Drupal\Component\Assertion\Inspector;
- use Drupal\Core\Cache\MemoryBackend;
- /**
- * Defines a memory cache implementation.
- *
- * Stores cache items in memory using a PHP array.
- *
- * @ingroup cache
- */
- 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 cache_get() or cache_get_multiple().
- * @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->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->getRequestTime(),
- 'expire' => $expire,
- 'tags' => $tags,
- ];
- }
- }
|