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.
Tipo de retorno: array
-
setSupportedDatatypes
(stdClass $marker, array $datatypes) Set supported datatypes.
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getSupportedMetadata
() Get supported metadata.
Tipo de retorno: array
-
setSupportedMetadata
(stdClass $marker, string $metadata) Set supported metadata.
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getMinTtl
() Get minimum supported time-to-live.
(Returning 0 means items never expire)
Tipo de retorno: integer
-
setMinTtl
(stdClass $marker, int $minTtl) Set minimum supported time-to-live.
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getMaxTtl
() Get maximum supported time-to-live.
Tipo de retorno: integer
-
setMaxTtl
(stdClass $marker, int $maxTtl) Set maximum supported time-to-live.
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getStaticTtl
() Is the time-to-live handled static (on write), or dynamic (on read).
Tipo de retorno: boolean
-
setStaticTtl
(stdClass $marker, boolean $flag) Set if the time-to-live is handled statically (on write) or dynamically (on read).
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getTtlPrecision
() Get time-to-live precision.
Tipo de retorno: float
-
setTtlPrecision
(stdClass $marker, float $ttlPrecision) Set time-to-live precision.
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getUseRequestTime
() Get the “use request time” flag status.
Tipo de retorno: boolean
-
setUseRequestTime
(stdClass $marker, boolean $flag) Set the “use request time” flag.
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getExpiredRead
() Get flag indicating if expired items are readable.
Tipo de retorno: boolean
-
setExpiredRead
(stdClass $marker, boolean $flag) Set if expired items are readable.
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getMaxKeyLength
() Get maximum key length.
Tipo de retorno: integer
-
setMaxKeyLength
(stdClass $marker, int $maxKeyLength) Set maximum key length.
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getNamespaceIsPrefix
() Get if namespace support is implemented as a key prefix.
Tipo de retorno: boolean
-
setNamespaceIsPrefix
(stdClass $marker, boolean $flag) Set if namespace support is implemented as a key prefix.
Tipo de retorno: Zend\Cache\Storage\Capabilities
-
getNamespaceSeparator
() Get namespace separator if namespace is implemented as a key prefix.
Tipo de retorno: string
-
setNamespaceSeparator
(stdClass $marker, string $separator) Set the namespace separator if namespace is implemented as a key prefix.
Tipo de retorno: 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);
|