File Manager Lite
Dir:
/home/codewavebd/public_html/vendor/laravel/framework/src/Illuminate/Cache
Upload
[..]
ApcStore.php (3 KB)
Edit
Rename
Del
ApcWrapper.php (1.4 KB)
Edit
Rename
Del
CacheLock.php (1.77 KB)
Edit
Rename
Del
Console/
Rename
Del
Events/
Rename
Del
FailoverStore.php (6.69 KB)
Edit
Rename
Del
LICENSE.md (1.05 KB)
Edit
Rename
Del
Limiters/
Rename
Del
MemcachedConnector.php (2.33 KB)
Edit
Rename
Del
MemcachedLock.php (1.4 KB)
Edit
Rename
Del
MemcachedStore.php (6.42 KB)
Edit
Rename
Del
MemoizedStore.php (6.64 KB)
Edit
Rename
Del
NoLock.php (870 B)
Edit
Rename
Del
PhpRedisLock.php (809 B)
Edit
Rename
Del
RateLimiting/
Rename
Del
RedisLock.php (1.72 KB)
Edit
Rename
Del
RedisStore.php (14.73 KB)
Edit
Rename
Del
RedisTagSet.php (3.82 KB)
Edit
Rename
Del
RedisTaggedCache.php (5.79 KB)
Edit
Rename
Del
TagSet.php (2.44 KB)
Edit
Rename
Del
TaggableStore.php (415 B)
Edit
Rename
Del
TaggedCache.php (2.82 KB)
Edit
Rename
Del
composer.json (1.5 KB)
Edit
Rename
Del
Edit: MemoizedStore.php
<?php namespace Illuminate\Cache; use BadMethodCallException; use Illuminate\Contracts\Cache\CanFlushLocks; use Illuminate\Contracts\Cache\LockProvider; use Illuminate\Contracts\Cache\Store; class MemoizedStore implements CanFlushLocks, LockProvider, Store { /** * The memoized cache values. * * @var array<string, mixed> */ protected $cache = []; /** * Create a new memoized cache instance. * * @param string $name * @param \Illuminate\Cache\Repository $repository */ public function __construct( protected $name, protected $repository, ) { // } /** * Retrieve an item from the cache by key. * * @param string $key * @return mixed */ public function get($key) { $prefixedKey = $this->prefix($key); if (array_key_exists($prefixedKey, $this->cache)) { return $this->cache[$prefixedKey]; } return $this->cache[$prefixedKey] = $this->repository->get($key); } /** * Retrieve multiple items from the cache by key. * * Items not found in the cache will have a null value. * * @return array */ public function many(array $keys) { [$memoized, $retrieved, $missing] = [[], [], []]; foreach ($keys as $key) { $prefixedKey = $this->prefix($key); if (array_key_exists($prefixedKey, $this->cache)) { $memoized[$key] = $this->cache[$prefixedKey]; } else { $missing[] = $key; } } if ($missing !== []) { $retrieved = tap($this->repository->many($missing), function ($values) { foreach ($values as $key => $value) { $this->cache[$this->prefix($key)] = $value; } }); } $result = []; foreach ($keys as $key) { if (array_key_exists($key, $memoized)) { $result[$key] = $memoized[$key]; } else { $result[$key] = $retrieved[$key]; } } return $result; } /** * Store an item in the cache for a given number of seconds. * * @param string $key * @param mixed $value * @param int $seconds * @return bool */ public function put($key, $value, $seconds) { unset($this->cache[$this->prefix($key)]); return $this->repository->put($key, $value, $seconds); } /** * Store multiple items in the cache for a given number of seconds. * * @param int $seconds * @return bool */ public function putMany(array $values, $seconds) { foreach ($values as $key => $value) { unset($this->cache[$this->prefix($key)]); } return $this->repository->putMany($values, $seconds); } /** * Increment the value of an item in the cache. * * @param string $key * @param mixed $value * @return int|bool */ public function increment($key, $value = 1) { unset($this->cache[$this->prefix($key)]); return $this->repository->increment($key, $value); } /** * Decrement the value of an item in the cache. * * @param string $key * @param mixed $value * @return int|bool */ public function decrement($key, $value = 1) { unset($this->cache[$this->prefix($key)]); return $this->repository->decrement($key, $value); } /** * Store an item in the cache indefinitely. * * @param string $key * @param mixed $value * @return bool */ public function forever($key, $value) { unset($this->cache[$this->prefix($key)]); return $this->repository->forever($key, $value); } /** * Get a lock instance. * * @param string $name * @param int $seconds * @param string|null $owner * @return \Illuminate\Contracts\Cache\Lock * * @throws \BadMethodCallException */ public function lock($name, $seconds = 0, $owner = null) { if (! $this->repository->getStore() instanceof LockProvider) { throw new BadMethodCallException('This cache store does not support locks.'); } return $this->repository->getStore()->lock(...func_get_args()); } /** * Restore a lock instance using the owner identifier. * * @param string $name * @param string $owner * @return \Illuminate\Contracts\Cache\Lock * * @throws \BadMethodCallException */ public function restoreLock($name, $owner) { if (! $this->repository->getStore() instanceof LockProvider) { throw new BadMethodCallException('This cache store does not support locks.'); } return $this->repository->getStore()->restoreLock(...func_get_args()); } /** * Flush all locks managed by the store. * * @throws \BadMethodCallException */ public function flushLocks(): bool { $store = $this->repository->getStore(); if (! $store instanceof CanFlushLocks) { throw new BadMethodCallException('This cache store does not support flushing locks.'); } return $store->flushLocks(); } /** * Determine if the lock store is separate from the cache store. */ public function hasSeparateLockStore(): bool { $store = $this->repository->getStore(); return $store instanceof CanFlushLocks && $store->hasSeparateLockStore(); } /** * Adjust the expiration time of a cached item. * * @param string $key * @param int $seconds * @return bool */ public function touch($key, $seconds) { unset($this->cache[$this->prefix($key)]); return $this->repository->touch($key, $seconds); } /** * Remove an item from the cache. * * @param string $key * @return bool */ public function forget($key) { unset($this->cache[$this->prefix($key)]); return $this->repository->forget($key); } /** * Remove all items from the cache. * * @return bool */ public function flush() { $this->cache = []; return $this->repository->flush(); } /** * Get the cache key prefix. * * @return string */ public function getPrefix() { return $this->repository->getPrefix(); } /** * Prefix the given key. * * @param string $key * @return string */ protected function prefix($key) { return $this->getPrefix().$key; } }
Simpan