CRM_Utils_Cache_ArrayDecorator
in package
implements
CRM_Utils_Cache_Interface
uses
CRM_Utils_Cache_NaiveMultipleTrait
Class CRM_Utils_Cache_ArrayDecorator
This creates a two-tier cache-hierarchy: a thread-local, array-based cache combined with some third-party cache driver.
Ex: $cache = new CRM_Utils_Cache_ArrayDecorator(new CRM_Utils_Cache_Redis(...));
Table of Contents
Interfaces
Properties
- $defaultTimeout : int
- $delegate : CRM_Utils_Cache_Interface
- $expires : array<string|int, mixed>
- $values : array<string|int, mixed>
Methods
- __construct() : mixed
- CRM_Utils_Cache_ArrayDecorator constructor.
- clear() : bool
- Delete all values from the cache.
- delete() : bool
- Delete a value from the cache.
- deleteMultiple() : bool
- Deletes multiple cache items in a single operation.
- flush() : bool
- Delete all values from the cache.
- get() : mixed
- Get a value from the cache.
- getMultiple() : iterable<string|int, mixed>
- Obtains multiple cache items by their unique keys.
- has() : bool
- Determines whether an item is present in the cache.
- set() : bool
- Set the value in the cache.
- setMultiple() : bool
- Persists a set of key => value pairs in the cache, with an optional TTL.
- assertIterable() : mixed
- reobjectify() : mixed
Properties
$defaultTimeout
protected
int
$defaultTimeout
Default time-to-live (seconds) for cache items that don't have a TTL.
$delegate
private
CRM_Utils_Cache_Interface
$delegate
$expires
private
array<string|int, mixed>
$expires
= []
Array(string $cacheKey => int $expirationTime).
$values
private
array<string|int, mixed>
$values
= []
Array(string $cacheKey => mixed $cacheValue).
Methods
__construct()
CRM_Utils_Cache_ArrayDecorator constructor.
public
__construct(CRM_Utils_Cache_Interface $delegate[, int $defaultTimeout = 3600 ]) : mixed
Parameters
- $delegate : CRM_Utils_Cache_Interface
- $defaultTimeout : int = 3600
-
Default number of seconds each cache-item should endure.
clear()
Delete all values from the cache.
public
clear() : bool
NOTE: flush() and clear() should be aliases. flush() is specified by Civi's traditional interface, and clear() is specified by PSR-16.
Return values
booldelete()
Delete a value from the cache.
public
delete(mixed $key) : bool
Parameters
- $key : mixed
Return values
booldeleteMultiple()
Deletes multiple cache items in a single operation.
public
deleteMultiple(iterable<string|int, mixed> $keys) : bool
Parameters
- $keys : iterable<string|int, mixed>
-
A list of string-based keys to be deleted.
Tags
Return values
bool —True if the items were successfully removed. False if there was an error.
flush()
Delete all values from the cache.
public
flush() : bool
NOTE: flush() and clear() should be aliases. flush() is specified by Civi's traditional interface, and clear() is specified by PSR-16.
Return values
boolget()
Get a value from the cache.
public
get(mixed $key[, mixed $default = NULL ]) : mixed
Parameters
- $key : mixed
- $default : mixed = NULL
Return values
mixed —The previously set value value, or $default (NULL).
getMultiple()
Obtains multiple cache items by their unique keys.
public
getMultiple(iterable<string|int, mixed> $keys[, mixed $default = NULL ]) : iterable<string|int, mixed>
Parameters
- $keys : iterable<string|int, mixed>
-
A list of keys that can obtained in a single operation.
- $default : mixed = NULL
-
Default value to return for keys that do not exist.
Tags
Return values
iterable<string|int, mixed> —A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value.
has()
Determines whether an item is present in the cache.
public
has(mixed $key) : bool
NOTE: It is recommended that has() is only to be used for cache warming type purposes and not to be used within your live applications operations for get/set, as this method is subject to a race condition where your has() will return true and immediately after, another script can remove it making the state of your app out of date.
Parameters
- $key : mixed
-
The cache item key.
Return values
boolset()
Set the value in the cache.
public
set(mixed $key, mixed $value[, mixed $ttl = NULL ]) : bool
Parameters
- $key : mixed
- $value : mixed
- $ttl : mixed = NULL
Return values
boolsetMultiple()
Persists a set of key => value pairs in the cache, with an optional TTL.
public
setMultiple(iterable<string|int, mixed> $values[, null|int|DateInterval $ttl = NULL ]) : bool
Parameters
- $values : iterable<string|int, mixed>
-
A list of key => value pairs for a multiple-set operation.
- $ttl : null|int|DateInterval = NULL
-
Optional. The TTL value of this item. If no value is sent and the driver supports TTL then the library may set a default value for it or let the driver take care of that.
Tags
Return values
bool —True on success and false on failure.
assertIterable()
private
assertIterable(mixed $func, mixed $keys) : mixed
Parameters
- $func : mixed
- $keys : mixed
Tags
reobjectify()
private
reobjectify(mixed $value) : mixed
Parameters
- $value : mixed