93 lines
2.4 KiB
Markdown
93 lines
2.4 KiB
Markdown
|
# CallbackCache
|
||
|
|
||
|
|
||
|
The callback cache pattern caches the results of arbitrary PHP callables.
|
||
|
|
||
|
## Quick Start
|
||
|
|
||
|
```php
|
||
|
use Zend\Cache\PatternFactory;
|
||
|
use Zend\Cache\Pattern\PatternOptions;
|
||
|
|
||
|
// Via the factory:
|
||
|
$callbackCache = PatternFactory::factory('callback', [
|
||
|
'storage' => 'apc',
|
||
|
'cache_output' => true,
|
||
|
]);
|
||
|
|
||
|
// Or the equivalent manual instantiation:
|
||
|
$callbackCache = new \Zend\Cache\Pattern\CallbackCache();
|
||
|
$callbackCache->setOptions(new PatternOptions([
|
||
|
'storage' => 'apc',
|
||
|
'cache_output' => true,
|
||
|
]));
|
||
|
```
|
||
|
|
||
|
## Configuration Options
|
||
|
|
||
|
Option | Data Type | Default Value | Description
|
||
|
------ | --------- | ------------- | -----------
|
||
|
`storage` | `string | array | Zend\Cache\Storage\StorageInterface` | none | Adapter used for reading and writing cached data.
|
||
|
`cache_output` | `boolean` | `true` | Whether or not to cache callback output.
|
||
|
|
||
|
## Available Methods
|
||
|
|
||
|
In addition to the methods defined in the `PatternInterface`, this
|
||
|
implementation provides the following methods.
|
||
|
|
||
|
```php
|
||
|
namespace Zend\Cache\Pattern;
|
||
|
|
||
|
use Zend\Cache\Exception;
|
||
|
use Zend\Stdlib\ErrorHandler;
|
||
|
|
||
|
class CallbackCache extends AbstractPattern
|
||
|
{
|
||
|
/**
|
||
|
* Call the specified callback or get the result from cache
|
||
|
*
|
||
|
* @param callable $callback A valid callback
|
||
|
* @param array $args Callback arguments
|
||
|
* @return mixed Result
|
||
|
* @throws Exception\RuntimeException if invalid cached data
|
||
|
* @throws \Exception
|
||
|
*/
|
||
|
public function call($callback, array $args = []);
|
||
|
|
||
|
/**
|
||
|
* Intercept method overloading; proxies to call()
|
||
|
*
|
||
|
* @param string $function Function name to call
|
||
|
* @param array $args Function arguments
|
||
|
* @return mixed
|
||
|
* @throws Exception\RuntimeException
|
||
|
* @throws \Exception
|
||
|
*/
|
||
|
public function __call($function, array $args);
|
||
|
|
||
|
/**
|
||
|
* Generate a unique key in base of a key representing the callback part
|
||
|
* and a key representing the arguments part.
|
||
|
*
|
||
|
* @param callable $callback A valid callback
|
||
|
* @param array $args Callback arguments
|
||
|
* @return string
|
||
|
* @throws Exception\RuntimeException
|
||
|
* @throws Exception\InvalidArgumentException
|
||
|
*/
|
||
|
public function generateKey($callback, array $args = []);
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## Examples
|
||
|
|
||
|
### Instantiating the callback cache pattern
|
||
|
|
||
|
```php
|
||
|
use Zend\Cache\PatternFactory;
|
||
|
|
||
|
$callbackCache = PatternFactory::factory('callback', [
|
||
|
'storage' => 'apc'
|
||
|
]);
|
||
|
```
|