2011-07-17 19 views
8

Cuando hago phpinfo() o php -i desde la CLI, me sale el siguiente resultado:¿Qué es el manejador de serialización php_binary?

session 

Registered save handlers => files user sqlite memcached 
Registered serializer handlers => php php_binary wddx 

yo no era consciente de que PHP serialización apoyó un formato binario, y no parece haber nada en la documentación al respecto.

que iba a utilizar para la sesión de serialización igbinary a un servidor memcached, por lo que me pregunto cómo php_binary compara.

Respuesta

9

El igbinaryPHP extension ofrece un nuevo controlador de serialización/deserialización de sesión que difiere de las implementaciones propias de PHP, concretamente php y php_binary.

Para responder a su pregunta: Estos controladores no se comparan en absoluto, son totalmente diferentes. Las diferencias igbinary introduce están documentadas dentro del readme de proyectos.

supongo que está haciendo la pregunta porque has encontrado la palabra binaria dentro de los dos: ig binaria y php_ binaria. Sin embargo, eso no dice mucho. Comparar la php con el manejador de php_binary primera:

El manejador de serializar/deserializar php_binary sesión es casi idéntica a la php controlador predeterminado. Solo difieren en cómo se codifican los nombres de las variables que están dentro de la sesión.

php_binary prefijará todos los nombres de variables de sesión con la longitud binaria del nombre. Mientras que con php cada nombre de variable tiene un sufijo del carácter | (\x7C, decimal 124). Por lo que sé, la serialización de los valores de la variable no difiere en absoluto.

Por lo que la serialización de valores es idéntica entre el controlador php y php_binary.

Por lo tanto, junto a la pequeña diferencia en pre/sufijo de nombres de variable de sesión, la pregunta realmente pregunta cómo se compara igbinary con la serialización de php (que se utiliza en los datos de la sesión). Esas diferencias se describen en el igbinary readme. Describe muy bien lo que se hace y por qué.

Si te gusta usar igbinary serialización, así como para serializar/unserialize, la extensión ofrece dos funciones de reemplazo:

igbinary_serialize y igbinary_unserialize - utilizados como sus primos php.

Si le preocupan algunos detalles de las diferencias, pregunte.

+0

¡Gracias por la respuesta! No, tengo bastante claro cómo funciona igbinary, simplemente no pude encontrar información sobre php_binary cuando lo busqué en Google. – Toxikman

+0

@Toxikman: Bien, bien entonces. La mayoría de la documentación está dentro de "fuente" :). Ambos, los formatos 'php' y' pbp_binary' no se describen mucho en el Manual de PHP. Siempre puede buscar en el código fuente C y/o aplicar ingeniería inversa a los formatos. – hakre

+2

Sí, pero eso habría llevado 10 veces más tiempo que buscar en Google la respuesta, y luego al publicar una pregunta sobre StackOverflow al respecto, y gracias a usted, la respuesta ahora está disponible para que cualquiera pueda encontrarla en los internets. :-) – Toxikman

Cuestiones relacionadas