JSON был исключен из PHP 5.5 в некоторых Linux дистрибутивах

archive view archive save

article Возможно очередной сюрприз получат пользователи, которые на своих Linux машинах обновили php до версии 5.5, в виде фатальной ошибки PHP Fatal error: Call to undefined function json_encode()

Ошибкой "PHP Fatal error: Call to undefined function json_encode()" мы обязаны конфликту лицензии JSON с лицензией PHP в Linux дистрибутивах. Так лицензия PHP гласит мол "The Software shall be used for Good, not Evil." (можно использовать только для добра, но не для зла), а лицензии JSON "The freedom to run the program for any purpose." его можно юзать как угодно.

Автор json.org якобы «вежливо» отказался вносить изменения в лицензию, ответом же стало удаление стандартного PHP расширения JSON из PHP 5.5rc2 в Fedora, Debian, и прочих Linux дистрибутивах.

Соответственно до тех пор пока в репозиториях, которыми пользуется менеджер пакетов вашей ОС Linux, не появится в виде пакета json расширение, то json-функции будут недоступны, а любые попытки использовать json-функции в коде приведут к ошибкам: "PHP Fatal error: Call to undefined function json_encode()"

Если Вас затронула эта проблема, и Вы не хотите ждать появления пакета в репозитории, тогда Вы можете установить PECL расширение json, которое также доступно в репозитории remi. JSON-C для Debian/Ubuntu можно поискать здесь: https://launchpad.net/~ondrej

Такая вот утка про удаление JSON из PHP 5.5 пошла с этого сайта: http://iteration99.com/2013/php-json-removed-from-php-5-5/, но там же в комментариях, например от "Remi Collet", говорится о том, что на самом деле JSON из PHP 5.5 не удалялся из стандартной поставки, просто некоторые Linux дистры из своих соображений лицензирования заменили входящий в поставку "non-free ext/json" на "pecl/jsonc".

Как бы там не было, перед обновлением до PHP 5.5 в ОС Linux нужно приготовится к неожидоностям!;)


Об авторе
АдМинь БагоИскатель
АдМинь БагоИскатель ярый борец за безглючную работу любых механизмов и организмов во всей вселенной и потому пребывает в вечном поиске всяческих багов, а тот кто ищет как известно всегда находит. Когда что-то или кого-то вылечить не в состоянии, то со словами "Я в аду, а вы все черти" уходит в запой выйдя из которого снова берётся лечить неизлечимое.
Ещё статьи автора
Комментарии в блоге
Новое на форуме