Содержание


Storage


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



Обзор

Адаптер Storage является оболочкой (обверткой) для реальных ресурсов хранения данных, такие как память и файловая система, используя хорошо известный адаптер pattern.

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

Все адаптеры реализуют интерфейс Zend\Cache\Storage\StorageInterface, а многие расширяют класс Zend\Cache\Storage\Adapter\AbstractAdapter для реализации основной логики.

Для осуществления настройки используется Zend\Cache\Storage\Adapter\AdapterOptions или специальный класс настройки адаптера, если он существует. Вы можете передать параметры настройки в класс при его инициализации, либо через метод setOptions(), или использовать ассоциативный массив опций в другом месте, который затем передастся в экземпляр класса настройки. Кроме того, существует возможность передачи экземпляра опций или ассоциативного массива в метод Zend\Cache\StorageFactory::factory.

 

Важно: Многие методы выбрасывают исключения.

Из-за того, что многие методы реализованы с исключениями, Вам необходимо вручную перехватывать их или использовать плагин Zend\Cache\Storage\Plugin\ExceptionHandler для автоматического перехватывания и перенаправления их в лог-файл с помощью опции «exception_callback».

 


Быстрый старт

Адаптеры кэширования могут быть созданы при использовании фабрики Zend\Cache\StorageFactory, или же инициализации одного из классов ZendCache\Storage\Adapter*.

Для более простого использования фабрика Zend\Cache\StorageFactory идет с набором методов для создания адаптеров и добавления/создания всех необходимых плгинов сразу.

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

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