Когда я делаю phpinfo () или php -i из CLI, я получаю следующий вывод:
session Registered save handlers => files user sqlite memcached Registered serializer handlers => php php_binary wddx
Я не знал, что сериализация PHP поддерживает двоичный формат, и в документации о нем нет ничего.
Я собирался использовать igbinary для сериализации сеанса на сервере memcached, поэтому мне интересно, как сравнивается php_binary .
igbinary
PHP extension предлагает новый сеансовый сериализатор / десериализатор, который отличается от собственных реализаций php
, а именно php
и php_binary
.
Чтобы ответить на ваш вопрос: эти обработчики вообще не сравниваются, они совершенно разные. Различия igbinary вводятся в документах readme.
Я предполагаю, что вы задаете вопрос, потому что вы нашли слово двоичное в двух двоичных файлах: ig и php_. Однако это не говорит много. php_binary
сравните php
с обработчиком php_binary
:
php_binary
сериализации / десериализации сериализации php_binary
почти идентичен обработчику php
по умолчанию. Они отличаются только тем, как кодируются имена переменных, которые входят в сеанс.
php_binary
будет префикс всех имен переменных сеанса с двоичной длиной имени. Хотя с php
каждое имя переменной имеет суффикс |
символ ( \x7C
, десятичный \x7C
124
). Из того, что я знаю, сериализация значений переменной не отличается вообще.
Таким образом, сериализация значений идентична между обработчиком php
и php_binary
.
Итак, рядом с небольшой разницей в pre / suffix имен переменных сеанса, вопрос действительно спрашивает о том, как igbinary
сравнивается с сериализацией php (которая используется в данных сеанса). Эти различия указаны в igbinary
readme . Он довольно хорошо описывает, что сделано и почему.
Если вы хотите использовать сериализацию и для сериализации / несериализации, расширение предлагает две функции замены:
igbinary_serialize
и igbinary_unserialize
– используются как их кузены php.
Если вас беспокоит какая-то особенность различий, спросите пожалуйста.