Zend\Cache\Storage\Capabilities

Overview

Storage capabilities describes how a storage adapter works and which features it supports.

To get capabilities of a storage adapter, you can use the method getCapabilities() of the storage adapter but only the storage adapter and its plugins have permissions to change them.

Because capabilities are mutable, for example, by changing some options, you can subscribe to the “change” event to get notifications; see the examples for details.

If you are writing your own plugin or adapter, you can also change capabilities because you have access to the marker object and can create your own marker to instantiate a new object of Zend\Cache\Storage\Capabilities.

Available Methods

__construct(Zend\Cache\Storage\StorageInterface $storage, stdClass $marker, array $capabilities = array(), Zend\Cache\Storage\Capabilities|null $baseCapabilities = null)

Constructor

getSupportedDatatypes()

Get supported datatypes.

Return type:array
setSupportedDatatypes(stdClass $marker, array $datatypes)

Set supported datatypes.

Return type:Zend\Cache\Storage\Capabilities
getSupportedMetadata()

Get supported metadata.

Return type:array
setSupportedMetadata(stdClass $marker, string $metadata)

Set supported metadata.

Return type:Zend\Cache\Storage\Capabilities
getMinTtl()

Get minimum supported time-to-live.

(Returning 0 means items never expire)

Return type:integer
setMinTtl(stdClass $marker, int $minTtl)

Set minimum supported time-to-live.

Return type:Zend\Cache\Storage\Capabilities
getMaxTtl()

Get maximum supported time-to-live.

Return type:integer
setMaxTtl(stdClass $marker, int $maxTtl)

Set maximum supported time-to-live.

Return type:Zend\Cache\Storage\Capabilities
getStaticTtl()

Is the time-to-live handled static (on write), or dynamic (on read).

Return type:boolean
setStaticTtl(stdClass $marker, boolean $flag)

Set if the time-to-live is handled statically (on write) or dynamically (on read).

Return type:Zend\Cache\Storage\Capabilities
getTtlPrecision()

Get time-to-live precision.

Return type:float
setTtlPrecision(stdClass $marker, float $ttlPrecision)

Set time-to-live precision.

Return type:Zend\Cache\Storage\Capabilities
getUseRequestTime()

Get the “use request time” flag status.

Return type:boolean
setUseRequestTime(stdClass $marker, boolean $flag)

Set the “use request time” flag.

Return type:Zend\Cache\Storage\Capabilities
getExpiredRead()

Get flag indicating if expired items are readable.

Return type:boolean
setExpiredRead(stdClass $marker, boolean $flag)

Set if expired items are readable.

Return type:Zend\Cache\Storage\Capabilities
getMaxKeyLength()

Get maximum key length.

Return type:integer
setMaxKeyLength(stdClass $marker, int $maxKeyLength)

Set maximum key length.

Return type:Zend\Cache\Storage\Capabilities
getNamespaceIsPrefix()

Get if namespace support is implemented as a key prefix.

Return type:boolean
setNamespaceIsPrefix(stdClass $marker, boolean $flag)

Set if namespace support is implemented as a key prefix.

Return type:Zend\Cache\Storage\Capabilities
getNamespaceSeparator()

Get namespace separator if namespace is implemented as a key prefix.

Return type:string
setNamespaceSeparator(stdClass $marker, string $separator)

Set the namespace separator if namespace is implemented as a key prefix.

Return type:Zend\Cache\Storage\Capabilities

Examples

Get storage capabilities and do specific stuff in base of it

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
use Zend\Cache\StorageFactory;

$cache = StorageFactory::adapterFactory('filesystem');
$supportedDatatypes = $cache->getCapabilities()->getSupportedDatatypes();

// now you can run specific stuff in base of supported feature
if ($supportedDatatypes['object']) {
    $cache->set($key, $object);
} else {
    $cache->set($key, serialize($object));
}

Listen to change event

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
use Zend\Cache\StorageFactory;

$cache = StorageFactory::adapterFactory('filesystem', array(
    'no_atime' => false,
));

// Catching capability changes
$cache->getEventManager()->attach('capability', function($event) {
    echo count($event->getParams()) . ' capabilities changed';
});

// change option which changes capabilities
$cache->getOptions()->setNoATime(true);

Table Of Contents

Previous topic

Zend\Cache\Storage\Adapter

Next topic

Zend\Cache\Storage\Plugin

This Page

Note: You need to stay logged into your GitHub account to contribute to the documentation.

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\Capabilities 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.