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.
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.
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.
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. |
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 |
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.
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 |
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.
![]() |
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. |
![]() |
Usa eval() |
|---|---|
El adaptador |
![[Warning]](images/warning.png)