$callables
$callables : array
Cache adapter that defers to closures for implementation
__construct(array $callables)
The callables array is an array mapping the actions of the cache adapter to callables.
array | $callables | array of action names to callable |
if the callable is not callable
contains(string $id, array $options = null) : boolean
Test if an entry exists in the cache.
string | $id | cache id The cache id of the entry to check for. |
array | $options | Array of cache adapter options |
Returns TRUE if a cache entry exists for the given cache id, FALSE otherwise.
save(string $id, string $data, integer|boolean $lifeTime = false, array $options = null) : boolean
Puts data into the cache.
string | $id | The cache id |
string | $data | The cache entry/data |
integer|boolean | $lifeTime | The lifetime. If != false, sets a specific lifetime for this cache entry |
array | $options | Array of cache adapter options |
TRUE if the entry was successfully stored in the cache, FALSE otherwise.
<?php
namespace Guzzle\Cache;
/**
* Cache adapter that defers to closures for implementation
*/
class ClosureCacheAdapter implements CacheAdapterInterface
{
/**
* @var array Mapping of method names to callables
*/
protected $callables;
/**
* The callables array is an array mapping the actions of the cache adapter to callables.
* - contains: Callable that accepts an $id and $options argument
* - delete: Callable that accepts an $id and $options argument
* - fetch: Callable that accepts an $id and $options argument
* - save: Callable that accepts an $id, $data, $lifeTime, and $options argument
*
* @param array $callables array of action names to callable
*
* @throws \InvalidArgumentException if the callable is not callable
*/
public function __construct(array $callables)
{
// Validate each key to ensure it exists and is callable
foreach (array('contains', 'delete', 'fetch', 'save') as $key) {
if (!array_key_exists($key, $callables) || !is_callable($callables[$key])) {
throw new \InvalidArgumentException("callables must contain a callable {$key} key");
}
}
$this->callables = $callables;
}
public function contains($id, array $options = null)
{
return call_user_func($this->callables['contains'], $id, $options);
}
public function delete($id, array $options = null)
{
return call_user_func($this->callables['delete'], $id, $options);
}
public function fetch($id, array $options = null)
{
return call_user_func($this->callables['fetch'], $id, $options);
}
public function save($id, $data, $lifeTime = false, array $options = null)
{
return call_user_func($this->callables['save'], $id, $data, $lifeTime, $options);
}
}