Содержание


Capabilities


Zend\Cache\Storage\Capabilities, ЗФ2, Zend Framework 2, ZF2







Обзор

Возможности хранилищ описывают, как должны работать адаптеры хранения и какие функции они должны поддерживать.

Для получения возможностей адаптера хранения, Вы можете использовать метод getCapabilities(), однако изменять их имеют право только адаптеры и их плагины.

Так как возможности являются изменяемыми, например, при изменении некоторых опций, у Вас есть возможность создать событие, для получения уведомления.

Если же Вы напишите свой собственный адаптер или плагин, Вы можете именять возможности, потому что есть доступ  к маркерам и возможность их создания для инициализации объекта Zend\Cache\Storage\Capabilities.


Доступные методы

__construct(ZendCacheStorageStorageInterface $storage, stdClass $marker, array $capabilities = array(), ZendCacheStorageCapabilities|null $baseCapabilities = null)

Конструктор

 

getSupportedDatatypes()

Получить поддерживаемые типы данных.

Тип возвращаемых данных: array

 

setSupportedDatatypes(stdClass $marker, array $datatypes)

Задать поддерживаемые типы данных.

 Типвозвращаемыхданных: Zend\Cache\Storage\Capabilities

 

getSupportedMetadata()

Получить поддерживаемые метаданные(metadata).


Тип возвращаемых данных: array

 

setSupportedMetadata(stdClass $marker, string $metadata)

Задать поддерживаемые метаданные(metadata).


Тип возвращаемых данных: Zend\Cache\Storage\Capabilities

 

getMinTtl()

Получить минимальное время жизни (time-to-live)

Если возвращается ноль -  данные никогда не устаревают (бессмертные)


Тип возвращаемых данных :integer

 

setMinTtl(stdClass $marker, int $minTtl)

Задать минимальное время жизни (time-to-live)


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 

getMaxTtl()

Получить максимальное время жизни (time-to-live)


Тип возвращаемых данных :integer

 

setMaxTtl(stdClass $marker, int $maxTtl)

Задать максимальное время жизни (time-to-live)


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 

getStaticTtl()

Узнать, время жизни задается статически(при записи) или динамически (при чтении).


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 

setStaticTtl(stdClass $marker, boolean $flag)

Задать, время жизни задается статически(при записи) или динамически (при чтении).


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 

 

getTtlPrecision()

Получить точное время жизни (time-to-live).


Тип возвращаемых данных :float

 

setTtlPrecision(stdClass $marker, float $ttlPrecision)

Задать точное время жизни (time-to-live).


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 

getUseRequestTime()

Получить значение флага «используемое время запроса»(use request time).


Тип возвращаемых данных :Boolean

 

setUseRequestTime(stdClass $marker, boolean $flag)

Задать значение флага «используемое время запроса»(use request time).


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 

getExpiredRead()

Получить значение флага, указывающего, являются ли устаревшие данные доступными для чтения.


Тип возвращаемых данных :Boolean

 

 

setExpiredRead(stdClass $marker, boolean $flag)

Задать значение флага, указывающего, являются ли устаревшие данные доступными для чтения.


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 

 

getMaxKeyLength()

Получить значение максимальной длины ключа.


Тип возвращаемых данных :integer

 

setMaxKeyLength(stdClass $marker, int $maxKeyLength)

Задать значение максимальной длины ключа.


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 

getNamespaceIsPrefix()

Узнать, используется ли пространство имен как префикс ключа.


Тип возвращаемых данных :Boolean

 

setNamespaceIsPrefix(stdClass $marker, boolean $flag)

Задать, используется ли пространство имен как префикс ключа.


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 

getNamespaceSeparator()

Получить разделитель, если пространство имен используется как префикс ключа.


Тип возвращаемых данных :string

 

setNamespaceSeparator(stdClass $marker, string $separator)

Задать разделитель, если пространство имен используется как префикс ключа.


Тип возвращаемых данных : Zend\Cache\Storage\Capabilities

 



Примеры

Получить возможности хранилища и использовать их.

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));
}

Прослушиваниесобытиянаизменение:

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);

Автор статьи: DuB