Содержание


Adapter


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




Адаптеры Zend\Serializer создают мост для разных методов сериализации.

 

У каждого из адаптеров имеются свои плюсы и минусы. В некоторых случаях не все типы данных PHP (объекты) могут быть конвертированы в строку. В большинстве случаем типы будут преобразованы в схожие, которые можно сериализировать.

 

Например, объекты превращаются в массивы.

 

Адаптер PhpSerialize



 

Адаптер Zend\Serializer\Adapter\PhpSerialize использует встроенные функции PHPсериализации/десериализации и является хорошим выбором для адаптера по умолчанию.  Для него нет настраиваемых опций.

 

Адаптер IgBinary



 

IgBinary является Open Source Software (программное обеспечение с открытым исходным кодом), созданное Sulake Dynamoid Oy и с 2011-03-14 подддерживается в PECL благодаря Pierre Joye. Это заменой для стандартного сериализатор PHP. Вместо того времени и пространства для текстового представления, IgBinary хранит данные PHP в сжатой бинарной форме. Значительный прирост скорости и уменьшения места на диске хорошо заметны при использовании «memcached» или других подобных хранилищ для сериализированных данных.

 

Вам необходимо установить PHP расширение «igbinary» для использования этого адаптера.

 

Для него нет настраиваемых опций.

 

Адаптер Wddx



 

WDDX (WebDistributedDataeXchange) – представляет собой программный язык, платформу и транспортно-нейтральный механизм для передачи данных между различными средами и компьютерами.

 

Этот адаптер использует PHP функции «wddx_*()».

 

Так же используется PHP расширение «SimpleXML» для проверки, не возвращается ли «NULL» из «wddx_unserialize()»

 

Доступные опции настройки:

 


Опция

Тип данных

Значение по умолчанию

Описание

comment

string

нету

Дополнительный комментарий, который появляется в заголовке пакета.

 

 

Адаптер Json



 

Является мостом для компонента Zend\Json.  Более подробно в разделе документации про Zend\Json.

 

Доступные опции:

Опция

Тип данных

Значение по умолчанию

cycle_check

boolean

false

object_decode_type

Zend\Json\Json::TYPE_*

Zend\Json\Json::TYPE_ARRAY

enable_json_expr_finder

boolean

false

 

Адаптер PythonPickle



 

Конвертирует типы PHP в строковые представления Python Pickle.

Доступные опции:

 

Опция

Тип данных

Значение по умолчанию

Описание

protocol

integer (0|1|2|3)

0

Версия протокола Pickle , используемая при сериализации

 

 

Соответствие типов данных (PHP в Python Pickle):

 

Типы PHP

Типы Python Pickle

NULL

None

boolean

boolean

integer

integer

float

float

string

string

array list

list

array map

dictionary

object

dictionary

 

 

Соответствие типов данных (Python Pickle в PHP):

 

Типы Python Pickle

Типы PHP

None

NULL

``boolean

boolean

``integer

integer

``long

integer or float or string or Zend\Serializer\Exception\ExceptionInterface

``float

float

``string

string

``bytes

string

unicode string

string UTF-8

list

array list

tuple

array list

dictionary

array map

All other types

Zend\Serializer\Exception\ExceptionInterface

 

Адаптер PhpCode



 

Адаптер Zend\Serializer\Adapter\PhpCode генерирует парсируемую реализацию PHP кода, используя «var_export()». При восстановлении (извлечении) данных используется «eval».

 

Для него нет настраиваемых опций.

 

 


Warning!
Десериализация объектов.
Объекты сериализируются с использованием магического метода «__set_state». Если класс не реализует этот метод возникнет исключение. 

 

Warning!
Использование «Eval()».
Адаптер PhpCode использует «eval()» для десериализации. Это создает сразу несколько проблем в производительности и безопасности при выполнении нового процесса. Использовать PhpSerialize необходимо только если вам не нужны человеко -  читабельные сериализированные данные.

 


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