Documentation

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
author

Kévin Dunglas dunglas@gmail.com

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

$adapters

private array<string|int, mixed> $adapters = []

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
T

getItem()

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.

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
Return values
Generator

        
On this page

Search results