TigerZF
🌐Español

62.2. Zend_Serializer_Adapter

Los adaptadores de Zend_Serializer crean un puente para diferentes métodos de serialización con muy poco esfuerzo.

Cada adaptador tiene diferentes pros y contras. En algunos casos, no todos los tipos de datos de PHP (por ejemplo, los objetos) pueden convertirse a una representación en cadena. En la mayoría de estos casos, el tipo se convertirá a un tipo similar que sea serializable; por ejemplo, los objetos de PHP a menudo se convertirán a arrays. Si esto falla, se lanzará una Zend_Serializer_Exception.

A continuación se muestra una lista de los adaptadores disponibles.

62.2.1. Zend_Serializer_Adapter_PhpSerialize

Este adaptador usa las funciones integradas un/serialize de PHP, y es una buena opción de adaptador predeterminado.

No hay opciones configurables para este adaptador.

62.2.2. Zend_Serializer_Adapter_Igbinary

Igbinary es software de código abierto publicado por Sulake Dynamoid Oy. Es un reemplazo directo del serializador estándar de PHP. En lugar de una representación textual que consume tiempo y espacio, igbinary almacena las estructuras de datos de PHP en una forma binaria compacta. El ahorro es significativo cuando se usa memcached o almacenamientos similares basados en memoria para datos serializados.

Necesita tener instalada en su sistema la extensión de PHP igbinary para poder usar este adaptador.

Este adaptador no acepta opciones de configuración.

62.2.3. Zend_Serializer_Adapter_Wddx

WDDX (Web Distributed Data eXchange) es un mecanismo de intercambio de datos neutral en cuanto a lenguaje de programación, plataforma y transporte para pasar datos entre diferentes entornos y diferentes equipos.

El adaptador simplemente usa las funciones de PHP wddx_*(). Por favor, lea el manual de PHP para determinar cómo puede habilitarlas en su instalación de PHP.

Además, se usa la extensión de PHP SimpleXML para comprobar si un valor NULL devuelto por wddx_unserialize() se basa en un NULL serializado o en datos no válidos.

Las opciones disponibles incluyen:

Tabla 62.1. Opciones de Zend_Serializer_Adapter_Wddx

Opción Tipo de dato Valor por defecto Descripción
comment string Un comentario opcional que aparece en la cabecera del paquete.

62.2.4. Zend_Serializer_Adapter_Json

El adaptador JSON proporciona un puente hacia el componente Zend_Json y/o ext/json. Por favor, lea la documentación de Zend_Json para más información.

Las opciones disponibles incluyen:

Tabla 62.2. Opciones de Zend_Serializer_Adapter_Json

Opción Tipo de dato Valor por defecto Descripción
cycleCheck boolean false Vea esta sección
objectDecodeType Zend_Json::TYPE_* Zend_Json::TYPE_ARRAY Vea esta sección
enableJsonExprFinder boolean false Vea esta sección

62.2.5. Zend_Serializer_Adapter_Amf 0 y 3

Los adaptadores AMF, Zend_Serializer_Adapter_Amf0 y Zend_Serializer_Adapter_Amf3, proporcionan un puente hacia el serializador del componente Zend_Amf. Por favor, lea la documentación de Zend_Amf para más información.

No hay opciones para estos adaptadores.

62.2.6. Zend_Serializer_Adapter_PythonPickle

Este adaptador convierte tipos de PHP a una representación en cadena de Python Pickle. Con él, puede leer los datos serializados con Python y leer datos en formato Pickle de Python con PHP.

Las opciones disponibles incluyen:

Tabla 62.3. Opciones de Zend_Serializer_Adapter_PythonPickle

Opción Tipo de dato Valor por defecto Descripción
protocol integer (0 | 1 | 2 | 3) 0 La versión del protocolo Pickle usada al serialize

La correspondencia de tipos de datos (de PHP a Python) ocurre de la siguiente manera:

Tabla 62.4. Correspondencia de tipos de datos (PHP a Python)

Tipo PHP Tipo Python
NULL None
boolean boolean
integer integer
float float
string string
array list
associative array dictionary
object dictionary

La correspondencia de tipos de datos (de Python a PHP) ocurre según lo siguiente:

Tabla 62.5. Correspondencia de tipos de datos (Python a PHP)

Tipo Python Tipo PHP
None NULL
boolean boolean
integer integer
long integer | float | string | Zend_Serializer_Exception
float float
string string
bytes string
Unicode string UTF-8 string
list array
tuple array
dictionary associative array
Todos los demás tipos Zend_Serializer_Exception

62.2.7. Zend_Serializer_Adapter_PhpCode

Este adaptador genera una representación de código PHP analizable usando var_export(). Al restaurar, los datos se ejecutarán usando eval.

No hay opciones de configuración para este adaptador.

[Warning] Deserialización de objetos

Los objetos se serializarán usando el método mágico __set_state. Si la clase no implementa este método, se producirá un error fatal durante la ejecución.

[Warning] Usa eval()

El adaptador PhpCode utiliza eval() para deserializar. Esto introduce tanto un problema de rendimiento como uno potencial de seguridad, ya que se ejecutará un nuevo proceso. Normalmente, debería usar el adaptador PhpSerialize a menos que necesite legibilidad humana de los datos serializados.