The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

02.03.2012 09:42  Релиз PHP 5.4.0. Обзор новшеств

Спустя почти три года с момента выхода ветки 5.3 представлен релиз языка программирования PHP 5.4.0. Среди ключевых особенностей новой ветки отмечается реализация поддержки конструкции "Traits" и сокращенного синтаксиса массивов, увеличение производительности и сокращение потребления памяти, поддержка многобайтовых символов для всех сборок, добавление встроенного web-сервера в SAPI-модуль CLI. В новой ветке удалены некоторые устаревшие возможности языка и опции настройки, поэтому версия 5.4 не обеспечивает полную совместимость на уровне API и конфигурации. При использовании PHP 5.4 может потребоваться модификация приложений и серверных настроек (например, удалена поддержка Safe mode и register_globals).

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

Основные особенности PHP 5.4.0:

    • Изменения, нарушающие совместимость:
      • Прекращение поддержки всех опций, связанных с режимом "Safe mode";
      • Прекращение поддержки настроек для автоматического экранирования специальных символов в поступающих из вне данных ("magic quotes");
      • Прекращение поддержки синтаксиса "break/continue $var"
      • Удаление конфигурационных опций register_globals, define_syslog_variables, highlight.bg, session.bug_compat42, session.bug_compat_warn, y2k_compliance, allow_call_time_pass_reference и register_long_arrays;
      • Удаление функций session_is_regisitered(), session_registered() и session_unregister().
      • В поставляемых файлах конфигурации в опции default_charset вместо "ISO-8859-1" теперь задана кодировка "UTF-8", но по умолчанию, при отсутствии данной опции, по прежнему используется пустое значение ("");
      • Удалена поддержка hash-алгоритмов Salsa10 и Salsa20.
      • В расширении Date прекращена поддержка изменения часового пояса через переменную окружения TZ;
      • Функция array_combine() отныне возвращает значение array() вместо FALSE, если на вход переданы два пустых массива;
    • Увеличение производительности и оптимизация потребления памяти в Zend Engine. Работа по оптимизации проведена большая, улучшений очень много и они затрагивают различные части внутренностей PHP. Например, в тесте bench.php производительность PHP возросла на 19%, а в тесте micro_bench.php на 26%. При оценке скорости выполнения реальных приложений (c использованием акселератора APC) отмечается ускорение работы CMS typo3 на 6%, WordPress на 8%, drupal на 2%, xoops на 14% и scrum на 13%;
    • Поддержка языковой конструкции "Traits", предназначенной для организации повторного использования объектов без изменений существующих объектов;
    • Поддержка разыменования массивов (например, возвращающую массив функцию можно использовать как "func()['key']");
    • Поддержка сокращенного синтаксиса задания массивов, например, можно указывать func(["id" => 500, "type" => "account"]) вместо func(array("id" => 500, "type" => "account"));
    • Интеграция поддержки системы динамической трассировки DTrace;
    • Поддержка синтаксиса Class::{expr}();
    • Возможность обращения к членам классов с созданием отдельного экземпляра класса ("(new Foo)->bar()");
    • Поддержка двоичного формата определения данных (например, 0b001001101);
    • Новые хэш-функции fnv132, fnv164, joaat;
    • Интеграция в SAPI-модуль CLI встроенного http-сервера, что позволяет существенно упростить отладку web-приложений на локальных машинах пользователей. Http-сервер ориентирован только на применение для нужд тестирования и отладки, и не рассчитан на применение в роли замены традиционных http-серверов;
    • Перемещение встроенного расширения ext/sqlite во внешний каталог PECL (изменение не касается sqlite3, поддержка которого будет по прежнему встроена);
    • Для сборки PHP 5.4 требуется установка пакета autoconf 2.59 или более новой версии (рекомендуется Autoconf 2.60+). Расширены возможности сборки для unix-подобных систем, например, теперь можно одновременно собрать несколько бинарных SAPI из PHP и внешних SAPI-модулей;
    • Увеличена производительность парсинга запросов в FastCGI;
    • В $_SERVER['REQUEST_TIME'] теперь передается время с указанием микросекунд ($_SERVER['REQUEST_TIME_FLOAT']);
    • По умолчанию активирован режим поддержки многобайтовых кодировок (php больше не нужно специально собирать с опцией "--enable-zend-multibyte"). Для выключения поддержки в php.ini добавлена директива zend.multibyte;
    • Возвращена поддержка замыкания "$this";
    • Добавлена возможность косвенного вызова методов через массив;
    • Добавлена поддержка использования ссылок на объекты при рекурсивном вызове serialize();
    • Увеличена производительность функции unserialize();
    • Добавлена поддержка "stream metadata API" в класс stream_metadata();
    • Разнообразные улучшения отмечаются почти во всех стандартных расширениях;
    • Добавлен вызываемый typehint;
    • Удален алгоритм угадывания часового пояса. Отныне если часовой пояс не задан явно, используется "UTC";
    • Расширения mysql, mysqli и pdo_mysql теперь по умолчанию базируются на mysqlnd. В mysqlnd добавлена поддержка именованных каналов. В функцию mysqli_result() из модуля mysqli добавлена поддержка интерфейса Traversable (определение использования в циклах foreach). В pdo_mysql прекращения поддержка связывания с библиотеками MySQL версии младше 4.1;
    • Новые базовые функции: hex2bin(), http_reponse_code(), get_declared_traits(), getimagesizefromstring(), stream_set_chunk_size(), socket_import_stream(), trait_exists(), header_register_callback(). Дополнительно см. список новых функций в расширениях, а также списки новых глобальных констант, методов и классов (например, JsonSerializable, SessionHandler, SNMP, CallbackFilterIterator);
    • В SAPI-модуле PHP-FPM добавлена опция process.max для управления числом процессов, порождаемых FPM;
    • В FastCGI SAPI добавлены совместимые с Apache функции apache_child_terminate(), getallheaders(), apache_request_headers() и apache_response_headers();
    • В интерактивном CLI-интерфейсе теперь можно на лету менять настройки конфигурации, используя синтаксис "#inisetting=value";
    • В расширении OpenSSL добавлена поддержка шифрования AES;
    • Новые директивы конфигурации: cli.pager, cli.prompt, max_input_vars (для ограничения числа элементов в GET/POST/COOKIE), zend.multibyte, session.upload_progress.*, enable_post_data_reading (можно запретить чтение данных для POST-запросов).


  1. Главная ссылка к новости (http://www.php.net/archive/201...)
  2. OpenNews: Facebook анонсировал виртуальную машину HipHop и JIT-компилятор для языка PHP
  3. OpenNews: Проект по бэкпортированию в PHP 5.2.17 исправлений из ветки PHP 5.3
  4. OpenNews: Разработчики PHP планируют упразднить классическое расширение ext/MySQL
  5. OpenNews: Представлен регламент подготовки новых релизов PHP
  6. OpenNews: Продемонстрирована удачная попытка внедрения бэкдора в код интерпретатора PHP
Лицензия: CC-BY
Тип: Интересно / Программы
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.2, c0rax, 10:16, 02/03/2012 [ответить] [смотреть все]
  • +3 +/
    Отлично.
    Теперь ждем пару-тройку корректирующих релизов, и можно ставить на свои сервера.
    Вот правда хостинги еще не скоро на нее перейдут, если конечно вообще перейдут, что довольно спорный вопрос.
     
     
  • 2.13, jesus, 11:57, 02/03/2012 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    ох уж эти сказочки ох уж эти сказочники у некоторых слоупоков ещё 5 2 стои... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.15, SubGun, 11:58, 02/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Просто перевод на новую ветку PHP стоит немалых денег.
     
     
  • 4.17, Gogast, 12:25, 02/03/2012 [^] [ответить] [смотреть все]  
  • +3 +/
    Чего сложного в давании возможность выбрать версию PHP ?
     
     
  • 5.56, Александр, 13:03, 05/03/2012 [^] [ответить] [смотреть все]  
  • +/
    в настройки сервера. купите себе VPS и выбирайте там все что хотите
     
     
  • 6.64, Georges, 15:53, 06/03/2012 [^] [ответить] [смотреть все]  
  • +/
    А без vps, возможность выбора версии PHP для всех клиентов на сервере ... весь текст скрыт [показать]
     
  • 4.19, terr0rist, 13:08, 02/03/2012 [^] [ответить] [смотреть все]  
  • +2 +/
    перевод чего софта хостинга или ваших мыслей Для хостинга это вообще ноль пр... весь текст скрыт [показать]
     
     
  • 5.20, Andrew Kolchoogin, 13:50, 02/03/2012 [^] [ответить] [смотреть все]  
  • +2 +/
    Ну, CGI в эпоху поставляемого искаропки FPM -- это китч. ;)
     
     
  • 6.26, terr0rist, 18:11, 02/03/2012 [^] [ответить] [смотреть все]  
  • +/
    1 Если уж на то пошло, то FastCGI - это разновидность CGI 2 PHP-FPM искаропк... весь текст скрыт [показать]
     
     
  • 7.38, cosmonaut, 11:57, 03/03/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    python ... весь текст скрыт [показать]
     
     
  • 8.41, terr0rist, 14:25, 03/03/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Нет Я не имею ничего против питона, но рассматривать его как альтернативу в веб... весь текст скрыт [показать]
     
     
  • 9.49, Azudim, 00:10, 04/03/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    Perla вполне хватает.
     
     
  • 10.57, Александр, 13:05, 05/03/2012 [^] [ответить] [смотреть все]  
  • +/
    для кого? не смешите.
     
     
  • 11.58, Azudim, 14:47, 05/03/2012 [^] [ответить] [смотреть все]  
  • +/
    для того, кто отделяет мухи от котлет не ведет в одном файле верстку, стили... весь текст скрыт [показать]
     
     
  • 12.69, zoonman, 17:00, 08/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Назовите хоть один Perl-шаблонизатор со Smarty-синтаксисом и возможностями таког... весь текст скрыт [показать]
     
     
  • 13.72, Azudim, 17:17, 11/03/2012 [^] [ответить] [смотреть все]  
  • +/
    TT, синтаксис естественно отличается
     
  • 8.63, PnD, 13:28, 06/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Я вообще-то не прогер, однако в админской части приходится иметь дело с массой... весь текст скрыт [показать]
     
     
  • 9.65, arisu, 19:44, 06/03/2012 [^] [ответить] [смотреть все]  
  • +/
    что-то не видно любителей гвидобейсика со срыванием покровов то ли ниасилили мн... весь текст скрыт [показать]
     
  • 5.22, MVK, 15:34, 02/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Ну если PHP был подключен через CGI ха-ха-ха, бред полнейший , то действительно... весь текст скрыт [показать]
     
     
  • 6.28, terr0rist, 18:35, 02/03/2012 [^] [ответить] [смотреть все]  
  • –2 +/
    1 Если 80 российских хостингов - это никто, кто же тогда по-вашему кто И во... весь текст скрыт [показать]
     
     
  • 7.34, Georges, 22:36, 02/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Если хостер будет запускать PHP как CGI это немного повысит нагрузку на сервер и... весь текст скрыт [показать]
     
     
  • 8.35, Куяврик, 02:54, 03/03/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    оригинальное написание слова катастрофически ... весь текст скрыт [показать]
     
     
  • 9.40, terr0rist, 14:21, 03/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Вы исследования проводили Имхо так, катастрофически повысив нагрузку на сервак ... весь текст скрыт [показать]
     
     
  • 10.70, Куяврик, 04:44, 11/03/2012 [^] [ответить] [смотреть все]  
  • +/
    чиво это решительно не повод долбиться с кривульками просто послушать и забить... весь текст скрыт [показать]
     
  • 8.39, terr0rist, 14:04, 03/03/2012 [^] [ответить] [смотреть все]  
  • +/
    вот именно, что немного Между немного нерентабельно и немного менее рентабель... весь текст скрыт [показать]
     
     
  • 9.61, Georges, 21:34, 05/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Есть один хостер где апач с worker mpm собственного производства и можно выбир... весь текст скрыт [показать]
     
     
  • 10.66, asd, 23:16, 06/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Это вопрос или утверждение Если вопрос, то почему нет в конце соответствующего ... весь текст скрыт [показать]
     
  • 8.44, terr0rist, 14:56, 03/03/2012 [^] [ответить] [смотреть все]  
  • +/
    И таки да Финальный аккорд на тему про производительность с CGI Вы знаете хоть... весь текст скрыт [показать]
     
     
  • 9.52, rex, 16:46, 04/03/2012 [^] [ответить] [смотреть все]  
  • +/
    На переподсоединение к БД из CGI время должно порядочно идти
     
     
  • 10.59, nagual, 18:28, 05/03/2012 [^] [ответить] [смотреть все]  
  • +/
    В нормальных языках программирования соединение с бд поддерживается а не перезап... весь текст скрыт [показать]
     
     
  • 11.60, Andrey Mitrofanov, 18:54, 05/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Какие языки подпирают такими костылями CGI не Fast-, не WS- Очень интер... весь текст скрыт [показать]
     
  • 1.3, CSRedRat, 10:27, 02/03/2012 [ответить] [смотреть все]  
  • +3 +/
    А как там на счёт включения в базовый пакет расширенных кэширующих утилит? Вроде APC (Alternative PHP Cache, относится к акселераторам PHP) хотели включить по умолчанию. Правда он давненько не обновлялся.
     
     
  • 2.4, Аноним, 10:31, 02/03/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Кстати, тоже интересно почему Т е я вообще не знаю причин, по которым нужно бы... весь текст скрыт [показать] [показать ветку]
     
  • 2.8, jedie, 10:47, 02/03/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Насколько мне известно APC входит в базовый состав уже с версии PHP 5.1
     
  • 2.25, pro100master, 17:47, 02/03/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    они избавляются от базовых и переносят инфраструктуру в PECL APC уже давно в ... весь текст скрыт [показать] [показать ветку]
     
  • 1.7, Аноним, 10:41, 02/03/2012 [ответить] [смотреть все]  
  • +3 +/
    А можно где-нибудь ознакомится с дальнейшими планами разрабов?
     
  • 1.9, ФФ, 11:05, 02/03/2012 [ответить] [смотреть все]  
  • +/
    Придётся поставить на локалхост и протестировать проекты.
     
  • 1.18, centosuser, 12:27, 02/03/2012 [ответить] [смотреть все]  
  • –1 +/
    ждали 6.0 а вышел 5.4.0
     
  • 1.21, Аноним, 13:56, 02/03/2012 [ответить] [смотреть все]  
  • +/
    Поддержку юникода в стандартные строковые функции так и не встроили?
     
     
  • 2.31, terr0rist, 18:48, 02/03/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    хмм А побайтно тогда какими функциями кодить ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.33, Аноним, 19:37, 02/03/2012 [^] [ответить] [смотреть все]  
  • +/
    можно ими же, строковые функции ведь по моему должны с символами работать а не с... весь текст скрыт [показать]
     
     
  • 4.42, terr0rist, 14:35, 03/03/2012 [^] [ответить] [смотреть все]  
  • +/
    что-то вы запутались Вот есть у меня блоб binary large object Как я с ним б... весь текст скрыт [показать]
     
     
  • 5.50, Аноним, 01:03, 04/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Эт гдеж то я запутался если вы согласны К уже существующим однобайтным строковы... весь текст скрыт [показать]
     
  • 5.51, Аноним, 01:11, 04/03/2012 [^] [ответить] [смотреть все]  
  • +/
    ибо понимаете, сейчас фигня какая получается, для одних строк одни функции, для ... весь текст скрыт [показать]
     
  • 1.27, ILYA INDIGO, 18:17, 02/03/2012 [ответить] [смотреть все]  
  • +/
    Наконец то дождались :)))
    register_globals фтопку
    magic_quotes_gpc фтопку
    временные зоны в виде отклонения от гринвича фтопку
    utf-8 по дефолту
    сокращённый синтаксис для массивов
    разыменование массивов
    задание бинарных чисел
    и общее ускорение в целом :))

    Теперь осталось подождать пока это добро вместе с apache 2.4.1 соберут на openSUSE ...

    По поводу быдлоадминов быдлохостеров они скорее сами ся в зад отымеют, чем откажутся от magic_quotes_gpc ON...

    Остаётся надеется на отдельные сервера специально запущенные под 5.4.x

     
     
  • 2.30, terr0rist, 18:47, 02/03/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    угу, и терь каждый раз проверять, по дефолту оно или нет, как с magic_quotes ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.32, ILYA INDIGO, 18:55, 02/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Дефолт значит дефолт его проверять не нужно, конечно если собираетесь писать иск... весь текст скрыт [показать]
     
     
  • 4.45, terr0rist, 15:01, 03/03/2012 [^] [ответить] [смотреть все]  
  • +/
    С РНР, по-видимому, уже не только не сразу , но вообще никогда Смотрю на node ... весь текст скрыт [показать]
     
     
  • 5.46, ILYA INDIGO, 15:31, 03/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Ну, как говорится, хочешь изменить мир - начни с себя Я начал ... весь текст скрыт [показать]
     
  • 1.36, XoRe, 06:37, 03/03/2012 [ответить] [смотреть все]  
  • –3 +/
    Я так понимаю, на такие понятия, как совместимость и поддержка старых версий ... весь текст скрыт [показать]
     
     
  • 2.43, terr0rist, 14:42, 03/03/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    кто ругался, не знаю, лично я всеми руками за хостинги с php-cgi хм, уж нет уж ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.48, noname, 22:35, 03/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Это вы еще не видели встроенный язык 1С ... весь текст скрыт [показать]
     
     
  • 4.67, asd, 23:19, 06/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Да уж, в точку Потому всё-таки перл, как бы его не ругали Вполне себе решение ... весь текст скрыт [показать]
     
     
  • 5.71, XoRe, 13:48, 11/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Если учесть, что на подходе perl6, который несколько отличается от perl5, там то... весь текст скрыт [показать]
     
  • 2.47, pro100master, 19:28, 03/03/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    а зачем вам optimizer Если ваш продукт хорош а он должен быть хорош, ведь не ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.68, XoRe, 01:12, 08/03/2012 [^] [ответить] [смотреть все]  
  • +/
    Представьте, что вы - хостер Ваш пользователь купил у вас хостинг по дорогому т... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor