PHP Class lithium\storage\cache\adapter\XCache

The XCache adapter is meant to be used through the Cache interface, which abstracts away key generation, adapter instantiation and filter implementation. A simple configuration of this adapter can be accomplished in app/config/bootstrap/cache.php as follows: {{{ use lithium\storage\Cache; Cache::config(array( 'cache-config-name' => array( 'adapter' => 'XCache', 'username' => 'user', 'password' => 'pass' ) )); }}} Note that the username and password configuration fields are only required if you wish to use XCache::clear() - all other methods do not require XCache administrator credentials. This XCache adapter provides basic support for write, read, delete and clear cache functionality, as well as allowing the first four methods to be filtered as per the Lithium filtering system. This adapter does *not* allow multi-key operations for any methods.
See also: lithium\storage\Cache::key()
See also: lithium\storage\cache\adapter
Inheritance: extends lithium\core\Object
显示文件 Open project: unionofrad/lithium Class Usage Examples

Public Methods

Method Description
__construct ( array $config = [] ) : void Constructor.
clear ( ) : boolean Clears entire user-space cache by flushing it. All cache keys using the configuration but *without* honoring the scope are removed.
decrement ( string $key, integer $offset = 1 ) : integer | boolean Performs an atomic decrement operation on specified numeric cache item.
delete ( array $keys ) : boolean Will attempt to remove specified keys from the user space cache.
enabled ( ) : boolean Determines if the XCache extension has been installed and if the userspace cache is available.
increment ( string $key, integer $offset = 1 ) : integer | boolean Performs an atomic increment operation on specified numeric cache item.
read ( array $keys ) : array Read values from the cache. Will attempt to return an array of data containing key/value pairs of the requested data.
write ( array $keys, string | integer $expiry = null ) : boolean Write values to the cache. All items to be cached will receive an expiration time of $expiry.

Method Details

__construct() public method

Constructor.
See also: lithium\storage\Cache::config()
public __construct ( array $config = [] ) : void
$config array Configuration for this cache adapter. These settings are queryable through `Cache::config('name')`. The available options are as follows: - `'scope'` _string_: Scope which will prefix keys; per default not set. - `'expiry'` _mixed_: The default expiration time for cache values, if no value is otherwise set. Can be either a `strtotime()` compatible tring or TTL in seconds. To indicate items should not expire use `Cache::PERSIST`. Defaults to `+1 hour`.
return void

clear() public method

This method requires valid XCache admin credentials to be set when the adapter was configured, due to the use of the xcache_clear_cache admin method. If the xcache.admin.enable_auth ini setting is set to Off, no credentials required. The behavior and result when removing a single key during this process fails is unknown.
public clear ( ) : boolean
return boolean `true` on successful clearing, `false` otherwise.

decrement() public method

Note that, as per the XCache specification: If the item's value is not numeric, it is treated as if the value were 0. It is possible to decrement a value into the negative integers.
public decrement ( string $key, integer $offset = 1 ) : integer | boolean
$key string Key of numeric cache item to decrement.
$offset integer Offset to decrement - defaults to `1`.
return integer | boolean The item's new value on successful decrement, else `false`.

delete() public method

Note that this is not an atomic operation when using multiple keys.
public delete ( array $keys ) : boolean
$keys array Keys to uniquely identify the cached items.
return boolean `true` on successful delete, `false` otherwise.

enabled() public static method

Determines if the XCache extension has been installed and if the userspace cache is available.
public static enabled ( ) : boolean
return boolean `true` if enabled, `false` otherwise.

increment() public method

Note that, as per the XCache specification: If the item's value is not numeric, it is treated as if the value were 0.
public increment ( string $key, integer $offset = 1 ) : integer | boolean
$key string Key of numeric cache item to increment.
$offset integer Offset to increment - defaults to `1`.
return integer | boolean The item's new value on successful increment, else `false`.

read() public method

Note that this is not an atomic operation when using multiple keys.
public read ( array $keys ) : array
$keys array Keys to uniquely identify the cached items.
return array Cached values keyed by cache keys on successful read, keys which could not be read will not be included in the results array.

write() public method

Note that this is not an atomic operation when using multiple keys.
public write ( array $keys, string | integer $expiry = null ) : boolean
$keys array Key/value pairs with keys to uniquely identify the to-be-cached item.
$expiry string | integer A `strtotime()` compatible cache time or TTL in seconds. To persist an item use `\lithium\storage\Cache::PERSIST`.
return boolean `true` on successful write, `false` otherwise.