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 (ok), 10:16, 02/03/2012 [ответить] [показать ветку] [···]    [к модератору]
  • +3 +/
    Отлично.
    Теперь ждем пару-тройку корректирующих релизов, и можно ставить на свои сервера.
    Вот правда хостинги еще не скоро на нее перейдут, если конечно вообще перейдут, что довольно спорный вопрос.
     
     
  • 2.13, jesus (??), 11:57, 02/03/2012 [^] [ответить]    [к модератору]
  • +/
    > хостинги еще не скоро на нее перейдут

    ох уж эти сказочки... ох уж эти сказочники...
    у некоторых слоупоков ещё 5.2 стоит, но это не значит, что все такие неумные

     
     
  • 3.15, SubGun (ok), 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 (ok), 15:53, 06/03/2012 [^] [ответить]    [к модератору]  
  • +/
    > в настройки сервера. купите себе VPS и выбирайте там все что хотите

    А без vps, возможность выбора версии PHP для всех клиентов на сервере ?

     
  • 4.19, terr0rist (ok), 13:08, 02/03/2012 [^] [ответить]     [к модератору]  
  • +2 +/
    перевод чего софта хостинга или ваших мыслей Для хостинга это вообще ноль пр... весь текст скрыт [показать]
     
     
  • 5.20, Andrew Kolchoogin (?), 13:50, 02/03/2012 [^] [ответить]    [к модератору]  
  • +2 +/
    Ну, CGI в эпоху поставляемого искаропки FPM -- это китч. ;)
     
     
  • 6.26, terr0rist (ok), 18:11, 02/03/2012 [^] [ответить]     [к модератору]  
  • +/
    1 Если уж на то пошло, то FastCGI - это разновидность CGI 2 PHP-FPM искаропк... весь текст скрыт [показать]
     
     
  • 7.38, cosmonaut (ok), 11:57, 03/03/2012 [^] [ответить]    [к модератору]  
  • +1 +/
    >у РНР до сих пор нет вменяемой альтернативы. Которая была бы  сравнима по популярности, скорости, кол-ву расширений и простоте развёртывания

    python?

     
     
  • 8.41, terr0rist (ok), 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 (ok), 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 (ok), 19:44, 06/03/2012 [^] [ответить]    [к модератору]  
  • +/
    что-то не видно любителей гвидобейсика со срыванием покровов. то ли ниасилили многабукаф, то ли уроки ещё не закончились.
     
  • 5.22, MVK (??), 15:34, 02/03/2012 [^] [ответить]    [к модератору]  
  • +/
    Ну если PHP был подключен через CGI (ха-ха-ха, бред полнейший), то действительно не проблема. Только через CGI на shared хостингах PHP никто не подключает из-за низкого перфоманса.
     
     
  • 6.28, terr0rist (ok), 18:35, 02/03/2012 [^] [ответить]     [к модератору]  
  • –2 +/
    1 Если 80 российских хостингов - это никто, кто же тогда по-вашему кто И во... весь текст скрыт [показать]
     
     
  • 7.34, Georges (ok), 22:36, 02/03/2012 [^] [ответить]     [к модератору]  
  • +/
    Если хостер будет запускать PHP как CGI это немного повысит нагрузку на сервер и... весь текст скрыт [показать]
     
     
  • 8.35, Куяврик (?), 02:54, 03/03/2012 [^] [ответить]    [к модератору]  
  • –1 +/
    > это немного повысит нагрузку на сервер

    оригинальное написание слова "катастрофически"...

     
     
  • 9.40, terr0rist (ok), 14:21, 03/03/2012 [^] [ответить]     [к модератору]  
  • +/
    Вы исследования проводили Имхо так, катастрофически повысив нагрузку на сервак ... весь текст скрыт [показать]
     
     
  • 10.70, Куяврик (?), 04:44, 11/03/2012 [^] [ответить]     [к модератору]  
  • +/
    чиво это решительно не повод долбиться с кривульками просто послушать и забить... весь текст скрыт [показать]
     
  • 8.39, terr0rist (ok), 14:04, 03/03/2012 [^] [ответить]     [к модератору]  
  • +/
    вот именно, что немного Между немного нерентабельно и немного менее рентабель... весь текст скрыт [показать]
     
     
  • 9.61, Georges (ok), 21:34, 05/03/2012 [^] [ответить]     [к модератору]  
  • +/
    Есть один хостер где апач с worker mpm собственного производства и можно выбир... весь текст скрыт [показать]
     
     
  • 10.66, asd (??), 23:16, 06/03/2012 [^] [ответить]    [к модератору]  
  • +/
    Это вопрос или утверждение?
    Если вопрос, то почему нет в конце соответствующего знака препинания?
    Если утверждение, то почему не прослеживается его суть?
     
  • 8.44, terr0rist (ok), 14:56, 03/03/2012 [^] [ответить]     [к модератору]  
  • +/
    И таки да Финальный аккорд на тему про производительность с CGI Вы знаете хоть... весь текст скрыт [показать]
     
     
  • 9.52, rex (??), 16:46, 04/03/2012 [^] [ответить]    [к модератору]  
  • +/
    На переподсоединение к БД из CGI время должно порядочно идти
     
     
  • 10.59, nagual (ok), 18:28, 05/03/2012 [^] [ответить]    [к модератору]  
  • +/
    > На переподсоединение к БД из CGI время должно порядочно идти

    В нормальных языках программирования соединение с бд поддерживается а не перезапускается :-))

     
     
  • 11.60, Andrey Mitrofanov (?), 18:54, 05/03/2012 [^] [ответить]     [к модератору]  
  • +/
    Какие языки подпирают такими костылями CGI не Fast-, не WS- Очень интер... весь текст скрыт [показать]
     
  • 1.3, CSRedRat (ok), 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 (ok), 17:47, 02/03/2012 [^] [ответить]    [к модератору]  
  • +/
    они избавляются от "базовых" и переносят инфраструктуру в PECL. APC уже давно в нём.
     
  • 1.7, Аноним (-), 10:41, 02/03/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    А можно где-нибудь ознакомится с дальнейшими планами разрабов?
     
     
  • 2.37, n (??), 11:34, 03/03/2012 [^] [ответить]    [к модератору]  
  • +1 +/
    https://wiki.php.net/todo
    https://wiki.php.net/rfc
     
  • 1.9, ФФ (ok), 11:05, 02/03/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Придётся поставить на локалхост и протестировать проекты.
     
  • 1.18, centosuser (ok), 12:27, 02/03/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    ждали 6.0 а вышел 5.4.0
     
  • 1.21, Аноним (-), 13:56, 02/03/2012 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Поддержку юникода в стандартные строковые функции так и не встроили?
     
     
  • 2.31, terr0rist (ok), 18:48, 02/03/2012 [^] [ответить]    [к модератору]  
  • +/
    > Поддержку юникода в стандартные строковые функции так и не встроили?

    хмм. А побайтно тогда какими функциями кодить?

     
     
  • 3.33, Аноним (-), 19:37, 02/03/2012 [^] [ответить]     [к модератору]  
  • +/
    можно ими же, строковые функции ведь по моему должны с символами работать а не с... весь текст скрыт [показать]
     
     
  • 4.42, terr0rist (ok), 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 (ok), 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 (ok), 18:47, 02/03/2012 [^] [ответить]     [к модератору]  
  • +/
    угу, и терь каждый раз проверять, по дефолту оно или нет, как с magic_quotes ... весь текст скрыт [показать]
     
     
  • 3.32, ILYA INDIGO (ok), 18:55, 02/03/2012 [^] [ответить]     [к модератору]  
  • +/
    Дефолт значит дефолт его проверять не нужно, конечно если собираетесь писать иск... весь текст скрыт [показать]
     
     
  • 4.45, terr0rist (ok), 15:01, 03/03/2012 [^] [ответить]     [к модератору]  
  • +/
    С РНР, по-видимому, уже не только не сразу , но вообще никогда Смотрю на node ... весь текст скрыт [показать]
     
     
  • 5.46, ILYA INDIGO (ok), 15:31, 03/03/2012 [^] [ответить]     [к модератору]  
  • +/
    Ну, как говорится, хочешь изменить мир - начни с себя Я начал ... весь текст скрыт [показать]
     
  • 1.36, XoRe (ok), 06:37, 03/03/2012 [ответить] [показать ветку] [···]     [к модератору]  
  • –3 +/
    Я так понимаю, на такие понятия, как совместимость и поддержка старых версий ... весь текст скрыт [показать]
     
     
  • 2.43, terr0rist (ok), 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 [^] [ответить]    [к модератору]  
  • +/
    >>Хотя, честно, РНР уже задрал. И не меня одного. Почему-то в его светлое будущее уже совсем
    >>не верится, и даже скорее, желается ему подохнуть поскорее)))
    > Это вы еще не видели встроенный язык 1С.

    Да уж, в точку.
    Потому всё-таки перл, как бы его не ругали. Вполне себе решение.

     
     
  • 5.71, XoRe (ok), 13:48, 11/03/2012 [^] [ответить]    [к модератору]  
  • +/
    >>>Хотя, честно, РНР уже задрал. И не меня одного. Почему-то в его светлое будущее уже совсем
    >>>не верится, и даже скорее, желается ему подохнуть поскорее)))
    >> Это вы еще не видели встроенный язык 1С.
    > Да уж, в точку.
    > Потому всё-таки перл, как бы его не ругали. Вполне себе решение.

    Если учесть, что на подходе perl6, который несколько отличается от perl5, там тоже будет веселый переход)

     
  • 2.47, pro100master (ok), 19:28, 03/03/2012 [^] [ответить]    [к модератору]  
  • +/
    а зачем вам optimizer?
    Если ваш продукт хорош (а он должен быть хорош, ведь не будете же вы защищать убогое поделие:), его всё-равно купят. Ради поддержки хотя бы. А если кто-то зажмотился и скопировал - вам от этого ни холодно и не жарко - он всё-равно вам не заплатил бы. Это как с любым софтом. Какие либо системы защиты лишь усложняют (увеличивают стоимость) продукт, и не несут никакой пользы - всё ломается за разумное время. А если вы в ульранизкобюджетном секторе - вы всё-равно работаете за еду и стоимость копии и защиты равна стоимости тарелки супа.
     
     
  • 3.68, XoRe (ok), 01:12, 08/03/2012 [^] [ответить]    [к модератору]  
  • +/
    > а зачем вам optimizer?

    Представьте, что вы - хостер.
    Ваш пользователь купил у вас хостинг по дорогому тарифу, заплатил сразу за год.
    И ставит какой-то движок, закодированный zend optimizer под php5.2.
    Спросите у него, зачем ему optimizer.
    Предложите забить на движок, как на устаревший.
    А он забьет на ваш хостинг.

     

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


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