Zend\Cache\Storage\Adapter

Overview

Storage adapters are wrappers for real storage resources such as memory and the filesystem, using the well known adapter pattern.

They comes with tons of methods to read, write and modify stored items and to get information about stored items and the storage.

All adapters implements the interface Zend\Cache\Storage\StorageInterface and most extend Zend\Cache\Storage\Adapter\AbstractAdapter, which comes with basic logic.

Configuration is handled by either Zend\Cache\Storage\Adapter\AdapterOptions, or an adapter-specific options class if it exists. You may pass the options instance to the class at instantiation or via the setOptions() method, or alternately pass an associative array of options in either place (internally, these are then passed to an options class instance). Alternately, you can pass either the options instance or associative array to the Zend\Cache\StorageFactory::factory method.

Note

Many methods throw exceptions

Because many caching methods can throw exceptions, you need to catch them manually or you can use the plug-in Zend\Cache\Storage\Plugin\ExceptionHandler to automatically catch them and redirect exceptions into a log file using the option “exception_callback”.

Quick Start

Caching adapters can either be created from the provided Zend\Cache\StorageFactory factory, or by simply instantiating one of the Zend\Cache\Storage\Adapter\*classes.

To make life easier, the Zend\Cache\StorageFactory comes with a factory method to create an adapter and create/add all requested plugins at once.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use Zend\Cache\StorageFactory;

// Via factory:
$cache = StorageFactory::factory(array(
    'adapter' => 'apc',
    'plugins' => array(
        'exception_handler' => array('throw_exceptions' => false),
    ),
));

// Alternately:
$cache  = StorageFactory::adapterFactory('apc');
$plugin = StorageFactory::pluginFactory('exception_handler', array(
    'throw_exceptions' => false,
));
$cache->addPlugin($plugin);

// Or manually:
$cache  = new Zend\Cache\Storage\Adapter\Apc();
$plugin = new Zend\Cache\Storage\Plugin\ExceptionHandler(array(
    'throw_exceptions' => false,
));
$cache->addPlugin($plugin);

Basic configuration Options

key_pattern

Pattern against which to validate cache keys.

  • setKeyPattern(null|string $pattern) Implements a fluent interface.
  • getKeyPattern() Returns string
namespace

The “namespace” in which cache items will live.

  • setNamespace(string $namespace) Implements a fluent interface.
  • getNamespace() Returns string
readable

Enable/Disable reading data from cache.

  • setReadable(boolean $flag) Implements a fluent interface.
  • getReadable() Returns boolean
ttl

Set time to live.

  • setTtl(int|float $ttl) Implements a fluent interface.
  • getTtl() Returns float
writable

Enable/Disable writing data to cache.

  • setWritable(boolean $flag) Implements a fluent interface.
  • getWritable() Returns boolean

Available Methods defined by Zend\Cache\Storage\StorageInterface

setOptions

setOptions(array|Traversable|Zend\Cache\Storage\Adapter\AdapterOptions $options)

Set options.

Implements a fluent interface.

getOptions

getOptions()

Get options

Returns Zend\Cache\Storage\Adapter\AdapterOptions

getItem

getItem(string $key, boolean & $success = null, mixed & $casToken = null)

Load an item with the given $key, set parameter $success to TRUE and set parameter $casToken.

If item can’t load this method returns NULL and set parameter $success to FALSE.

getItems

getItems(array $keys)

Load all items given by $keys.

Returns an array of key-value pairs of available items.

hasItem

hasItem(string $key)

Test if an item exists.

Returns boolean

hasItems

hasItems(array $keys)

Test multiple items.

Returns array

getMetadata

getMetadata(string $key)

Get metadata of an item.

Returns array|boolean

getMetadatas

getMetadatas(array $keys)

Get multiple metadata

Returns array

setItem

setItem(string $key, mixed $value)

Store an item.

Returns boolean

setItems

setItems(array $keyValuePairs)

Store multiple items.

Returns boolean

addItem

addItem(string $key, mixed $value)

Add an item.

Returns boolean

addItems

addItems(array $keyValuePairs)

Add multiple items.

Returns boolean

replaceItem

replaceItem(string $key, mixed $value)

Replace an item.

Returns boolean

replaceItems

replaceItems(array $keyValuePairs)

Replace multiple items.

Returns boolean

checkAndSetItem

checkAndSetItem(mixed $token, string $key, mixed $value)

Set item only if token matches

It uses the token from received from getItem() to check if the item has changed before overwriting it.

Returns boolean

touchItem

touchItem(string $key)

Reset lifetime of an item

Returns boolean

touchItems

touchItems(array $keys)

Reset lifetime of multiple items.

Returns boolean

removeItem

removeItem(string $key)

Remove an item.

Returns boolean

removeItems

removeItems(array $keys)

Remove multiple items.

Returns boolean

incrementItem

incrementItem(string $key, int $value)

Increment an item.

Returns int|boolean

incrementItems

incrementItems(array $keyValuePairs)

Increment multiple items.

Returns boolean

decrementItem

decrementItem(string $key, int $value)

Decrement an item.

Returns int|boolean

decrementItems

decrementItems(array $keyValuePairs)

Decrement multiple items.

Returns boolean

getCapabilities

getCapabilities()

Capabilities of this storage

Returns Zend\Cache\Storage\Capabilities

Available Methods defined by Zend\Cache\Storage\AvailableSpaceCapableInterface

getAvailableSpace

getAvailableSpace()

Get available space in bytes

Returns int|float

Available Methods defined by Zend\Cache\Storage\TotalSpaceCapableInterface

getTotalSpace

getTotalSpace()

Get total space in bytes

Returns int|float

Available Methods defined by Zend\Cache\Storage\ClearByNamespaceInterface

clearByNamespace

clearByNamespace(string $namespace)

Remove items of given namespace

Returns boolean

Available Methods defined by Zend\Cache\Storage\ClearByPrefixInterface

clearByPrefix

clearByPrefix(string $prefix)

Remove items matching given prefix

Returns boolean

Available Methods defined by Zend\Cache\Storage\ClearExpiredInterface

clearExpired

clearExpired()

Remove expired items

Returns boolean

Available Methods defined by Zend\Cache\Storage\FlushableInterface

flush

flush()

Flush the whole storage

Returns boolean

Available Methods defined by Zend\Cache\Storage\IterableInterface (extends IteratorAggregate)

getIterator

getIterator()

Get an Iterator

Returns Zend\Cache\Storage\IteratorInterface

Available Methods defined by Zend\Cache\Storage\OptimizableInterface

optimize

optimize()

Optimize the storage

Returns boolean

Available Methods defined by Zend\Cache\Storage\TaggableInterface

setTags

setTags(string   $key, string[] $tags)

Set tags to an item by given key. An empty array will remove all tags.

Returns boolean

getTags

getTags(string $key)

Get tags of an item by given key

Returns string[]|FALSE

clearByTags

clearByTags(string[] $tags, boolean $disjunction = false)

Remove items matching given tags.

If $disjunction only one of the given tags must match else all given tags must match.

Returns boolean

TODO: Examples

Edit this document

Edit this document

The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.

  1. Login with your GitHub account.
  2. Go to Zend\Cache\Storage\Adapter on GitHub.
  3. Edit file contents using GitHub's text editor in your web browser
  4. Fill in the Commit message text box at the end of the page telling why you did the changes. Press Propose file change button next to it when done.
  5. On Send a pull request page you don't need to fill in text anymore. Just press Send pull request button.
  6. Your changes are now queued for review under project's Pull requests tab on GitHub.