Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

PHP JSON был удален из PHP 5.5?

Anna | 31.05.2014 | нет комментариев

Допустимо некоторые из Вас обновив php до версии 5.5 на своих Linux машинах, нашли добродушную часть своих приложений неработающими по причине неизбежной ошибки схожей на эту:

PHP Fatal error: Call to undefined function json_encode()

Отчего так случилось читайте в вольном переводе cтатьи «Has PHP JSON been removed in PHP 5.5?»,
под катом.

Что происходит?

Крокфордский (Douglas Crockford) JSON — обширно применяемый формат обмена данными, оказался в лицензионном раздоре с PHP в Linux дистрибутивах из за строки в лицензионном соглашении первого, которая гласит:

“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 в Debian, Fedora, и других дистрибутивах.

До тех пор пока администратор пакетов вашего Linux дистрибутива не начнет предоставлять json растяжение в виде пакета, json-функции могут быть недостижимы. Всякий код использующий эти типовые функции приведет к ошибкам:

PHP Fatal error: Call to undefined function json_encode()
PHP Fatal error: Call to undefined function json_decode()

(прим. переводчика: в ubuntu server 13.10 PHP 5.5.3-1ubuntu2 растяжение JSON идет отдельным пакетом php5-json)

Решение для тех кого это затронуло

JSON в PHP будет предоставлен другими растяжениями в свое время и будем верить это будет прозрачно для финального пользователя, но если вы не хотите ожидать с обновлением и вас затронула эта задача, вы можете установить PECL растяжение JSON-C от Реми (jsonc by Remi Collet) которое использует библиотеку json-c.

Мое решение для CentOS 5.9 было в установке PECL JSON-C растяжения из репозитория Реми для YUM:

yum --enablerepo=remi install php-pecl-jsonc

Для Дебиан дистрибутивов может оказаться пригодным сторонний репозиторий от Ond

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB