Содержание


Serializer


Serializer, сериализация, ЗФ2, Zend Framework 2, ZF2, ру, ru




Компонент Zend\Serializer предоставляет адаптер , основанный на интерфейсе, позволяющий  просто создавать  представление PHP типов различных объектов для их сохранения и извлечения.  Более подробно, что такое сериализация данных можно почитать на Википедии.

 

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



 

Адаптер сериализации может быть создан, используя фабрику «Zend\Serializer\Serializer::factory» или  просто создавая экземпляр одного из классов «Zend\Serializer\Adapter\*».

use Zend\Serializer\Serializer;
 
// Via factory:
$serializer = Zend\Serializer\Serializer::factory('PhpSerialize');
 
// Alternately:
$serializer = new Zend\Serializer\Adapter\PhpSerialize();
 
// Now $serializer is an instance of ZendSerializerAdapterAdapterInterface,
// specifically ZendSerializerAdapterPhpSerialize
 
try {
    $serialized = $serializer->serialize($data);
    // now $serialized is a string
 
    $unserialized = $serializer->unserialize($serialized);
    // now $data == $unserialized
} catch (Zend\Serializer\Exception\ExceptionInterface $e) {
    echo $e;
}

Метод «serialize()» создаёт строку, пригодную для хранения. Для получения нормальных данных из сериализированых просто вызовете метод «unserialize()».

 

Если во время сериализации (serializing) или десереализации (unserializing) возникнет ошибка, то Zend\Serializer выбросит исключение «Zend\Serializer\Exception\ExceptionInterface».

 

Так как в приложении обычно используется всего один сериализатор, то можно определить его по умолчанию (default serializer). Тогда сериализатор будет использоваться по умолчанию и в других компонентах, например в «Zend\Cache\Storage\Plugin\Serializer».

 

Для использования сериализатора по умолчанию -  используйте статические методы Zend\Serializer\Serializer:

use Zend\Serializer\Serializer;
 
try {
    $serialized = Serializer::serialize($data);
    // now $serialized is a string
 
    $unserialized = Serializer::unserialize($serialized);
    // now $data == $unserialized
} catch (Zend\Serializer\Exception\ExceptionInterface $e) {
    echo $e;
}

Основные параметры конфигурации



 

Для настройки адаптера сериализации, у Вас есть возможность использовать экземпляр Zend\Serializer\Adapter\AdapterOptions, экземпляр одного из конкретных классов настройи адаптера, массив, экземпляр Traversable. Адаптер сам конвертирует настройки в конкретный экземпляр класса настройки или  базовый экземпляр класса Zend\Serializer\Adapter\AdapterOptions.

 

Опции могут быть переданы как второй аргумент в метод Zend\Serializer\Serializer::factory method, или использовать отдельный метод «setOptions()», или использовать конструктор.

 

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



 

Каждый сериализатор реализует интерфейс Zend\Serializer\Adapter\AdapterInterface.

 

Этот интерфейс определяет следующие методы:

 

- serialize(mixed $value)

Генерирует (создает) представление данных, которое можно сохранить.

Тип возвращаемого значения: string (строка).

 

- unserialize(string $value)

Создает PHP значение из сериализированных данных.

Тип возвращаемого значения: mixed.

 

Базовый класс Zend\Serializer\Serializer используется для инициализации адаптеров, настройки фабрики и статической сериализации.

 

Он определяет следующие статические методы:

 

factory(string|Zend\Serializer\Adapter\AdapterInterface $adapterName, Zend\Serializer\Adapter\AdapterOptions|array|Traversable|null $adapterOptions = null)

Создает экземпляр адаптора сериализации


Тип возвращаемого значения : Zend\Serializer\Adapter\AdapterInterface

 

setAdapterPluginManager(Zend\Serializer\AdapterPluginManager $adapters)

Изменяет адаптер плагина менеджера.

Тип возвращаемого значения: void

 

getAdapterPluginManager()

Получает адаптер плагина менеджера.


Тип возвращаемого значения : Zend\Serializer\AdapterPluginManager

 

resetAdapterPluginManager()

Восстанавливает (перезагружает) внутренний менеджер плагина.


Тип возвращаемого значения: void

 

setDefaultAdapter(string|Zend\Serializer\Adapter\AdapterInterface $adapter, Zend\Serializer\Adapter\AdapterOptions|array|Traversable|null $adapterOptions = null)

Изменяет адаптер по умолчанию


Тип возвращаемого значения: void

 

getDefaultAdapter()

Получает адаптер по умолчанию


Тип возвращаемого значения : Zend\Serializer\Adapter\AdapterInterface

 

serialize(mixed $value, string|Zend\Serializer\Adapter\AdapterInterface|null $adapter = null, Zend\Serializer\Adapter\AdapterOptions|array|Traversable|null $adapterOptions = null)

Создает сериализированные данные используя адаптер по умолчанию. При необходимости могут передаваться различные адаптеры как второй параметр.

Тип возвращаемого значения: string

 

unserialize(string $value, string|Zend\Serializer\Adapter\AdapterInterface|null $adapter = null, Zend\Serializer\Adapter\AdapterOptions|array|Traversable|null $adapterOptions = null)

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


Тип возвращаемого значения: mixed


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