¿Qué es el manejador de serialización de php_binary?

Cuando hago phpinfo () o php -i desde la CLI, obtengo el siguiente resultado:

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

No sabía que la serialización de PHP admite un formato binario, y no parece haber nada en la documentación al respecto.

Iba a usar igbinary para la serialización de sesiones en un servidor memcached, así que me pregunto cómo se compara php_binary .

La extensión igbinary PHP ofrece una nueva sesión serialize / deserialize handler 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 que introduce igbinary están documentadas dentro del readme de proyectos.

Supongo que estás haciendo la pregunta porque encontraste la palabra binario dentro de los dos: ig binary y php_ binary . Sin embargo, eso no dice mucho. Compare primero el php con el manejador php_binary :

El php_binary serialize / deserialize de la sesión php_binary es casi idéntico al manejador php 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 variable de sesión con la longitud binaria del nombre. Mientras que con php cada nombre de variable tiene un sufijo de | carácter ( \x7C , decimal 124 ). Por lo que sé, la serialización de los valores de la variable no difiere en absoluto.

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

Entonces, junto a la pequeña diferencia en el prefijo / sufijo de los nombres de las variables de la sesión, la pregunta en realidad pregunta cómo se compara igbinary con la serialización de php (que se usa en los datos de la sesión). Esas diferencias se describen en el igbinary . Describe muy bien lo que se hace y por qué.

Si desea utilizar serialización igbinary también para serializar / deserializar, la extensión ofrece dos funciones de reemplazo:

igbinary_serialize e igbinary_unserialize – usados ​​como sus primos php.

Si le preocupan algunas particularidades de las diferencias, por favor pregunte.