StackStore
class StackStore extends TaggableStore implements AuthoritativeRawReadable, CanFlushLocks, LockProvider
Properties
| protected StackStoreProxy> | $stores | The ordered store layers. |
|
| protected false|string|null | $tagCompositionError | Memoized tag-composition validation error. |
Methods
Begin executing a new tags operation.
Determine if this store currently supports tags.
Get the tag mode this store operates under.
No description
Retrieve an item from the cache by key.
Retrieve an item from the authoritative bottom layer without backfilling upper layers.
Retrieve multiple items from the cache by key.
Store an item in the cache for a given number of seconds.
Store multiple items in the cache for a given number of seconds.
Increment the value of an item in the cache.
Decrement the value of an item in the cache.
Store an item in the cache indefinitely.
Adjust the expiration time of a cached item.
Remove an item from the cache.
Remove all items from the cache.
Restore a lock instance using the owner identifier.
Determine if the store can currently flush locks.
Flush all locks managed by the store.
Determine if the lock store is separate from the cache store.
Get the cache key prefix.
Get the underlying taggable layer stores, top to bottom.
No description
Restore records found in lower layers into the layers above them.
No description
Store a record in all layers, indexing it under the given tags in the taggable layers.
Normalize a record to an absolute expiration and its remaining TTL.
Store a record in a single layer via the layer's tagged write path when possible.
Increment a record's value, indexing the write under the given tags.
Ensure the layer composition can support stack tags.
No description
Validate the layer composition for tag support.
Get the bottom layer's underlying store.
Get the bottom layer's store as a lock provider.
Call the handler for each store in order, rolling back the completed stores when one fails.
Details
at line 299
TaggedCache
tags(mixed $names)
Begin executing a new tags operation.
at line 309
bool
supportsTags()
Determine if this store currently supports tags.
at line 319
TagMode
getTagMode()
Get the tag mode this store operates under.
at line 45
__construct(array $stores)
No description
at line 57
mixed
get(string $key)
Retrieve an item from the cache by key.
at line 67
mixed
getAuthoritativeRaw(UnitEnum|string $key)
Retrieve an item from the authoritative bottom layer without backfilling upper layers.
at line 84
array
many(array $keys)
Retrieve multiple items from the cache by key.
at line 117
bool
put(string $key, mixed $value, int $seconds)
Store an item in the cache for a given number of seconds.
at line 130
bool
putMany(array $values, int $seconds)
Store multiple items in the cache for a given number of seconds.
at line 173
bool|int
increment(string $key, int $value = 1)
Increment the value of an item in the cache.
at line 191
bool|int
decrement(string $key, int $value = 1)
Decrement the value of an item in the cache.
at line 196
bool
forever(string $key, mixed $value)
Store an item in the cache indefinitely.
at line 209
bool
touch(string $key, int $seconds)
Adjust the expiration time of a cached item.
at line 223
bool
forget(string $key)
Remove an item from the cache.
at line 228
bool
flush()
Remove all items from the cache.
at line 240
Lock
lock(string $name, int $seconds = 0, string|null $owner = null)
Get a lock instance.
Locks are delegated to the bottom layer and never touch the cache tiers.
at line 250
Lock
restoreLock(string $name, string $owner)
Restore a lock instance using the owner identifier.
at line 258
bool
supportsFlushingLocks()
Determine if the store can currently flush locks.
at line 270
bool
flushLocks()
Flush all locks managed by the store.
at line 287
bool
hasSeparateLockStore()
Determine if the lock store is separate from the cache store.
at line 326
string
getPrefix()
Get the cache key prefix.
at line 338
array
taggableLayers()
Get the underlying taggable layer stores, top to bottom.
at line 355
protected array|null
getOrRestoreRecord(string $key)
No description
at line 384
protected void
restoreRecords(array $records, array $layers)
Restore records found in lower layers into the layers above them.
Mirrors getOrRestoreRecord(), filling the deepest layer first, but writes each layer's records with one putMany() per remaining TTL.
at line 423
protected bool
putRecord(string $key, array $record)
No description
at line 436
bool
putRecordTagged(array $tags, string $key, array $record)
Store a record in all layers, indexing it under the given tags in the taggable layers.
at line 447
protected bool
putToStore(StackStoreProxy $store, string $key, array $record)
Store a record in a single layer.
at line 472
protected array
normalizeRecord(array $record)
Normalize a record to an absolute expiration and its remaining TTL.
Records without an expiration or TTL are returned unchanged with a null TTL. A non-positive TTL means the record has no remaining lifetime (for example, it expired while a lower layer was read), so callers must not write it: array stores keep non-positive TTL writes forever.
at line 493
protected bool
putToStoreTagged(StackStoreProxy $proxy, array $tags, string $key, array $record)
Store a record in a single layer via the layer's tagged write path when possible.
Tagged writes bypass StackStoreProxy, so this mirrors putToStore()'s TTL clamp.
at line 528
bool|int
incrementTagged(array $tags, string $key, int $value = 1)
Increment a record's value, indexing the write under the given tags.
at line 551
protected void
ensureTagCompositionIsValid()
Ensure the layer composition can support stack tags.
at line 558
protected string|null
tagCompositionError()
No description
at line 573
protected string|null
validateTagComposition()
Validate the layer composition for tag support.
A non-taggable or all-mode layer below the taggable region would resurrect flushed values on read-through, silently undoing invalidation.
at line 615
protected Store
bottomStore()
Get the bottom layer's underlying store.
at line 625
protected LockProvider
bottomLockProvider()
Get the bottom layer's store as a lock provider.
at line 639
protected mixed
callStoresStacked(Closure $handler, Closure $bottomLayer)
No description
at line 651
protected bool
callStores(Closure $handler, Closure|null $rollback = null, bool $rollbackFailedStore = false)
Call the handler for each store in order, rolling back the completed stores when one fails.
at line 712
protected bool
callAllStores(Closure $handler)
Call the handler for every store.