ChainAdapter
in package
implements
AdapterInterface, CacheInterface, PruneableInterface, ResettableInterface
uses
ContractsTrait
Chains several adapters together.
Cached items are fetched from the first adapter having them in its data store. They are saved and deleted in all adapters at once.
Tags
Table of Contents
Interfaces
- AdapterInterface
- Interface for adapters managing instances of Symfony's CacheItem.
- CacheInterface
- Covers most simple to advanced caching needs.
- PruneableInterface
- Interface extends psr-6 and psr-16 caches to allow for pruning (deletion) of all expired cache items.
- ResettableInterface
- Resets a pool's local state.
Properties
- $adapterCount : int
- $adapters : array<string|int, mixed>
- $defaultLifetime : int
- $syncItem : Closure
Methods
- __construct() : mixed
- clear() : bool
- Deletes all items in the pool.
- commit() : bool
- Persists any deferred cache items.
- deleteItem() : bool
- Removes the item from the pool.
- deleteItems() : bool
- Removes multiple items from the pool.
- get() : T
- Fetches a value from the pool or computes it if not found.
- getItem() : CacheItemInterface
- Returns a Cache Item representing the specified key.
- getItems() : iterable<string, CacheItem>
- Returns a traversable set of cache items.
- hasItem() : bool
- Confirms if the cache contains specified cache item.
- prune() : bool
- reset() : void
- save() : bool
- Persists a cache item immediately.
- saveDeferred() : bool
- Sets a cache item to be persisted later.
- generateItems() : Generator
Properties
$adapterCount
private
int
$adapterCount
$adapters
private
array<string|int, mixed>
$adapters
= []
$defaultLifetime
private
int
$defaultLifetime
$syncItem
private
static Closure
$syncItem
Methods
__construct()
public
__construct(array<string|int, CacheItemPoolInterface> $adapters[, int $defaultLifetime = 0 ]) : mixed
Parameters
- $adapters : array<string|int, CacheItemPoolInterface>
-
The ordered list of adapters used to fetch cached items
- $defaultLifetime : int = 0
-
The default lifetime of items propagated from lower adapters to upper ones
clear()
Deletes all items in the pool.
public
clear([string $prefix = '' ]) : bool
Parameters
- $prefix : string = ''
Return values
bool —True if the pool was successfully cleared. False if there was an error.
commit()
Persists any deferred cache items.
public
commit() : bool
Return values
bool —True if all not-yet-saved items were successfully saved or there were none. False otherwise.
deleteItem()
Removes the item from the pool.
public
deleteItem(mixed $key) : bool
Parameters
- $key : mixed
-
The key to delete.
Return values
bool —True if the item was successfully removed. False if there was an error.
deleteItems()
Removes multiple items from the pool.
public
deleteItems(array<string|int, mixed> $keys) : bool
Parameters
- $keys : array<string|int, mixed>
-
An array of keys that should be removed from the pool.
Return values
bool —True if the items were successfully removed. False if there was an error.
get()
Fetches a value from the pool or computes it if not found.
public
get(string $key, callable $callback[, float|null $beta = null ][, array<string|int, mixed>|null &$metadata = null ]) : T
On cache misses, a callback is called that should return the missing value. This callback is given a PSR-6 CacheItemInterface instance corresponding to the requested key, that could be used e.g. for expiration control. It could also be an ItemInterface instance when its additional features are needed.
Parameters
- $key : string
-
The key of the item to retrieve from the cache
- $callback : callable
- $beta : float|null = null
-
A float that, as it grows, controls the likeliness of triggering early expiration. 0 disables it, INF forces immediate expiration. The default (or providing null) is implementation dependent but should typically be 1.0, which should provide optimal stampede protection. See https://en.wikipedia.org/wiki/Cache_stampede#Probabilistic_early_expiration
- $metadata : array<string|int, mixed>|null = null
-
The metadata of the cached item ItemInterface::getMetadata()
Return values
TgetItem()
Returns a Cache Item representing the specified key.
public
getItem(mixed $key) : CacheItemInterface
This method must always return a CacheItemInterface object, even in case of a cache miss. It MUST NOT return null.
Parameters
- $key : mixed
-
The key for which to return the corresponding Cache Item.
Return values
CacheItemInterface —The corresponding Cache Item.
getItems()
Returns a traversable set of cache items.
public
getItems([array<string|int, mixed> $keys = [] ]) : iterable<string, CacheItem>
Parameters
- $keys : array<string|int, mixed> = []
-
An indexed array of keys of items to retrieve.
Return values
iterable<string, CacheItem>hasItem()
Confirms if the cache contains specified cache item.
public
hasItem(mixed $key) : bool
Note: This method MAY avoid retrieving the cached value for performance reasons. This could result in a race condition with CacheItemInterface::get(). To avoid such situation use CacheItemInterface::isHit() instead.
Parameters
- $key : mixed
-
The key for which to check existence.
Return values
bool —True if item exists in the cache, false otherwise.
prune()
public
prune() : bool
Return values
boolreset()
public
reset() : void
save()
Persists a cache item immediately.
public
save(CacheItemInterface $item) : bool
Parameters
- $item : CacheItemInterface
-
The cache item to save.
Return values
bool —True if the item was successfully persisted. False if there was an error.
saveDeferred()
Sets a cache item to be persisted later.
public
saveDeferred(CacheItemInterface $item) : bool
Parameters
- $item : CacheItemInterface
-
The cache item to save.
Return values
bool —False if the item could not be queued or if a commit was attempted and failed. True otherwise.
generateItems()
private
generateItems(iterable<string|int, mixed> $items, int $adapterIndex) : Generator
Parameters
- $items : iterable<string|int, mixed>
- $adapterIndex : int