Что такое обработчик сериализации php_binary? - PullRequest
8 голосов
/ 17 июля 2011

Когда я делаю phpinfo () или php -i из CLI, я получаю следующий вывод:

session

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

Я не знал, что сериализация PHP поддерживает двоичный формат, и там не появляетсячто-нибудь в документации об этом.

Я собирался использовать igbinary для сериализации сеанса на сервер memcached, поэтому мне интересно, как php_binary сравнивает.

1 Ответ

9 голосов
/ 17 июля 2011

igbinary Расширение PHP действительно предлагает новый обработчик сериализации / десериализации сеанса, который отличается от собственных реализаций PHP, а именно php и php_binary.

Чтобы ответить на ваш вопрос: Эти обработчики вообще не сравниваются, они совершенно разные. Различия, которые вводит igbinary , задокументированы в readme проектов.

Я предполагаю, что вы задаете вопрос, потому что вы нашли слово двоичное в двух: ig двоичное и php_ двоичное .Однако это не говорит о многом.Сначала сравните php с обработчиком php_binary:

Обработчик php_binary сериализации / десериализации сессии практически идентичен обработчику php по умолчанию.Они отличаются только тем, как кодируются имена переменных, которые находятся в сеансе.

php_binary будет префиксом всех имен переменных сеанса двоичной длины имени.В то время как с php каждое имя переменной имеет суффикс символа | (\x7C, десятичный 124).Из того, что я знаю, сериализация значений переменной совсем не отличается.

Таким образом, сериализация значений одинакова для обработчика php и php_binary.

Итак, рядом сНебольшая разница в пре- / суффиксе имен переменных сеанса, фактически задает вопрос о том, как igbinary сравнивается с сериализацией php (которая используется в данных сеанса).Эти различия изложены в igbinary readme .Он довольно хорошо описывает, что сделано и почему.

Если вы хотите использовать сериализацию igbinary также для сериализации / десериализации, расширение предлагает две функции замены:

igbinary_serialize и igbinary_unserialize - используется как их кузены php.

Если вас беспокоит какая-то специфика различий, пожалуйста, спросите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...