The OpenNET Project / Index page

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

Начало тестирования PHP 5.4

29.06.2011 13:42

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

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

Из изменений можно отметить:

  • Возможности, удаленные по причине их устаревания:
    • Прекращение поддержки всех опций, связанных с режимом "Safe mode";
    • Прекращение поддержки синтаксиса "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().
  • Увеличение производительности и оптимизация потребления памяти в 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']");
  • Интеграция поддержки системы динамической трассировки DTrace;
  • Перемещение встроенного расширения ext/sqlite во внешний каталог PECL (изменение не касается sqlite3, поддержка которого будет по прежнему встроена);
  • Для сборки PHP 5.4 требуется установка пакета autoconf 2.59 или более новой версии (рекомендуется Autoconf 2.60+). Расширены возможности сборки для unix-подобных систем, например, теперь можно одновременно собрать несколько бинарных SAPI из PHP и внешних SAPI-модулей;
  • Увеличена производительность парсинга запросов в FastCGI;
  • В $_SERVER['REQUEST_TIME'] теперь передается время с указанием микросекунд;
  • Изменено значение по умолчанию для опции "default_charset", вместо ISO-8859-1 теперь указано UTF-8;
  • По умолчанию активирован режим поддержки многобайтовых кодировок (php больше не нужно специально собирать с опцией "--enable-zend-multibyte"). Для выключения поддержки в php.ini добавлена директива zend.multibyte;
  • Возвращена поддержка замыкания "$this";
  • Добавлена возможность косвенного вызова методов через массив;
  • Добавлена поддержка использования ссылок на объекты при рекурсивном вызове serialize();
  • Добавлены новые функции: http_response_code(), header_register_callback();
  • Увеличена производительность функции unserialize();
  • Добавлена поддержка "stream metadata API: в класс stream_metadata();
  • Разнообразные улучшения отмечаются почти во всех стандартных расширениях;


  1. Главная ссылка к новости (http://www.php.net/index.php#i...)
  2. OpenNews: Представлен регламент подготовки новых релизов PHP
  3. OpenNews: PHP-транслятор HipHop позволил Facebook использовать в разы меньше оборудования
  4. OpenNews: Проект PHP сообщил о взломе и утечке базы паролей с Wiki-сервера
  5. OpenNews: Продемонстрирована удачная попытка внедрения бэкдора в код интерпретатора PHP
  6. OpenNews: Увидел свет релиз интерпретатора языка программирования PHP 5.3
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/31035-php
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (54) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 14:06, 29/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Удаление конфигурационных опций register_globals

    Все правильно сделали

     
     
  • 2.2, Аноно (?), 14:09, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • –10 +/
    Ничего не правильно - все скрипты теперь переписывать.
     
     
  • 3.4, S (??), 14:36, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    кто-то еще использует эту дыру с переменными ???
     
  • 3.7, Аноним (-), 14:42, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не хотите - не переписывайте :).И вообще, они что, переписали по вашему весь вордпресс чтоли?Или как они его бенчмаркали?!
     
  • 3.16, Анонон (?), 18:06, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это надо было давно сделать, лет пять-семь как.
     
  • 3.33, FSA (??), 01:31, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Уже лет 10 пишу на php. Ни разу не возникала необходимость в register_globals=on. Разве что с $HTTP_xxxx_VARS перешёл на $_xxxxx.
     

  • 1.3, Аноним (-), 14:15, 29/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Неплохо так... Беда только что старые скрипты придется перебирать. А так.... хорошо...
     
     
  • 2.12, Анон (?), 16:38, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    s/старые/кривые/

    И это правильно.

     
     
  • 3.18, Аноним (-), 19:20, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    не надо ля-ля
     
     
  • 4.22, Анон (?), 19:31, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > не надо ля-ля

    Примеры того, чего требуется переписать можно? Только желательно не мелочи вроде $HTTP_GET_VARS, которые можно быстро заменить соответствующим софтом, а действительно серьёзные вещи. Если кодеры привыкли к всегда включенной magic_quotes_gpc и сразу пихали данные в базу без фильтрации, то это их проблемы.

     
     
  • 5.23, Аноним (-), 20:31, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    http://www.php.net/manual/ru/migration53.deprecated.php

    в том же split-е кучу регулярный выражений, например.

    если охота посмотреть на возникающий геморрой - берите старенький друпал, например, запускайте и тренируйтесь, а как натренируетесь, так приходите сюда бить себя в грудь и писать: "s/старые/кривые/"

     
     
  • 6.24, Анон (?), 20:39, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Всё правильно, язык прогрессирует, и с 5 ветки наметились тенденции к выкидыванию костылей и упорядочиванию синтаксиса. В любом языке так. А split - это, однако, мелочи. Вы лучше дайте пример где приходится всю архитектуру перетряхивать.

    Да и зачем мне старенький Друпал? Linux Kernel 0.01 найдите и попробуйте 4-м GCC скомпилировать.

     
     
  • 7.26, Аноним (-), 20:58, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Вы лучше дайте пример где приходится всю архитектуру перетряхивать.

    ну так возьмите друпал под пхп5.2 и посмотрите. не нравится друпал - возьмите жумлу...

    >Да и зачем мне старенький Друпал?

    затем что вы желаете посмотреть на серьезные косяки.

    >Linux Kernel 0.01 найдите и попробуйте 4-м GCC скомпилировать.

    и чего? у меня есть скрипты на перле, которые работают уже как 7-8 лет и в которых я ничего за это время не правил для поддержки их работоспособности в новых версиях перла, единственное, что проводил оптимизации кода небольшие, например, переписывая куски кода под map, где нужно.
    надо признать, что пхпшники плохие проектировщики и корявые программисты, отсюда и тонны уязвимостей и несовместимости в синтаксисе от версии к версии...

     
     
  • 8.29, Анон (?), 21:15, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А я смотрел Написаны они именно что быдлокодерами, чего ж удивляться тому, что ... текст свёрнут, показать
     
     
  • 9.34, Аноним (-), 08:37, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну а все на пхп такое, что не возьми пхпбб, вордпресc, типо3, друпал, жумла - э... большой текст свёрнут, показать
     
     
  • 10.39, samm (ok), 11:11, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот врать только не надо - еще как ломается Достаточно много пишу на перле и об... текст свёрнут, показать
     
  • 6.41, kolyanpo52 (?), 12:16, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    "Всё правильно, язык прогрессирует, и с 5 ветки наметились тенденции к выкидыванию костылей и упорядочиванию синтаксиса."

    Минуточку, а "Array dereferencing" по вашему не костыль?
    Да, они это сделали(крики "Ура" и воздушные шары в небо), но только для массивов. С объектами всё обстоит так же как и раньше

     
  • 2.46, nagual (ok), 01:07, 01/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Традиционно для php об обратной совместимости лучше и не спрашивать :))
     

  • 1.5, Аноним (-), 14:38, 29/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Разыменование массивов порадовало =)
     
     
  • 2.9, terr0rist (ok), 15:49, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    да уж, и 20 лет не прошло)))
    а интересно (new XXX)->a уже можно?... надо будет потестировать.
    Будет забавно, если в версии 5.5 откажутся от $ и от старого синтаксиса управляющих структур, а в версии 5.6 придумают новый строковый оператор и заменят дебильный -> на . =)
     
     
  • 3.47, nagual (ok), 01:09, 01/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > да уж, и 20 лет не прошло)))
    > а интересно (new XXX)->a уже можно?... надо будет потестировать.
    > Будет забавно, если в версии 5.5 откажутся от $ и от старого
    > синтаксиса управляющих структур, а в версии 5.6 придумают новый строковый оператор
    > и заменят дебильный -> на . =)

    Прогрес на лице :-)) в пхп наконец то открыт эниэвент ... правда до уровня POE еще пилить и пилить ... будет чем заняться следущие 20 лет :-))

     

  • 1.6, PereresusNeVlezaetBuggy (ok), 14:40, 29/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прочитав новость, сначала подумал, что traits дают гибкость на уровне JS, но, прочитав описание по ссылке, понял, что это нечто среднее между множественным наследованием и интерфейсами а-ля .NET; конкретные _объекты_ не изменяются, только их классы.
     
  • 1.10, Аноним123 (?), 16:04, 29/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    [Волнуетсо]
    Что там с session_ ? А что теперь вместо них?
     
     
  • 2.14, Ivan1986 (?), 16:48, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вместо них уже давно $_SESSION
    Поздравляю с выходом из анабиоза
     
     
  • 3.48, nagual (ok), 01:10, 01/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Вместо них уже давно $_SESSION
    > Поздравляю с выходом из анабиоза

    Это они специально чтоб программеры обновляли в памяти старый код :-))

     

  • 1.11, Cybister (?), 16:26, 29/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Всё клёво, только хостеры многие всё на 5.3 не могут перейти. Даже на новые серваки ставят 5.2. Обратная совместимость, конечно должна быть. Но в пхп это всё мелочи по сравнению со многими другими языками :)
     
     
  • 2.13, dench (?), 16:46, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Мы лучше 5.3 поставим отдельно, кто захочет - включит в панели управления хостингом для своего аккаунта PHP 5.3
    А если разом накатить 5.3 на боевые сервера с сотнями клиентов на борту - службу ТПХ порвут в клочья :)
     
     
  • 3.20, Аноним (-), 19:22, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Мы лучше 5.3 поставим отдельно, кто захочет - включит в панели управления
    > хостингом для своего аккаунта PHP 5.3
    > А если разом накатить 5.3 на боевые сервера с сотнями клиентов на
    > борту - службу ТПХ порвут в клочья :)

    да, действительно, ведь сидеть с дырявым 5.2 лучше...

     
     
  • 4.50, nagual (ok), 01:12, 01/07/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Мы лучше 5.3 поставим отдельно, кто захочет - включит в панели управления
    >> хостингом для своего аккаунта PHP 5.3
    >> А если разом накатить 5.3 на боевые сервера с сотнями клиентов на
    >> борту - службу ТПХ порвут в клочья :)
    > да, действительно, ведь сидеть с дырявым 5.2 лучше...

    Дыры в студию :-))

     
     
  • 5.53, Аноним (-), 18:09, 01/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В данный момент ветка 5.2 помечена как не поддерживаемая (http://php.net/downloads.php).

    Посмотрите на выпуск 5.3.6 (http://www.php.net/archive/2011.php#id2011-03-17-1), и убедитесь в том что есть улучшения и исправления безопасности.

     
  • 3.49, nagual (ok), 01:12, 01/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Мы лучше 5.3 поставим отдельно, кто захочет - включит в панели управления
    > хостингом для своего аккаунта PHP 5.3
    > А если разом накатить 5.3 на боевые сервера с сотнями клиентов на
    > борту - службу ТПХ порвут в клочья :)

    PHP 5.2.15 (cli)
    Copyright (c) 1997-2010 The PHP Group
    Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
        with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
        with the ionCube PHP Loader v3.3.10, Copyright (c) 2002-2009, by ionCube Ltd., and
        with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
        with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies

    Чем плох ?

     
     
  • 4.52, Dench (ok), 02:02, 01/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не плох, очень даже хорошо :)
    Но что делать с клиентосами, у которых неожиданно перестает работать php-gd (в принципе поправимо), какой-нибудь pecl-* (тоже не смертельно), или накрывается сайт, построенный на каком-нибудь движке - построенный на codeigniter-ском фреймворке?
    Вот и вынуждены мы поддерживать какую-то статичность в используемых версиях ПО.
    Тоже самое было после выхода 5-й ветки PHP - очень немногие хостеры ставили пятерку даже на новые сервера. А в итоге - найдите хоть одного хостера с PHP4 :)
     
  • 2.30, Alex (??), 22:11, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это на 99% из-за safe_mode
     
     
  • 3.35, Аноним (-), 08:39, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Это на 99% из-за safe_mode

    опен_базедир.

     
  • 3.37, n (??), 09:08, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    скорее из-за лени и латентности...
     

  • 1.15, Аноним (-), 17:52, 29/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ура-ура! Осталось только юникод осилить :-)

    > Прекращение поддержки синтаксиса "break/continue $var"

    Чем обусловлено данное решение? Иногда полезна.

     
     
  • 2.17, Andrey Mitrofanov (?), 18:39, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Чем обусловлено данное решение? Иногда полезна.

    Партия решила, что это не те роботы, которые. Теперь бесполезна, ты просто не заметил!

     
     
  • 3.19, Аноним (-), 19:22, 29/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Зато я теперь понимаю, зачем ввели GOTO в 5.3 :-)
     
     
  • 4.51, nagual (ok), 01:16, 01/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Зато я теперь понимаю, зачем ввели GOTO в 5.3 :-)

    90% программеров php в принципе неспособны освоить казуальное (событийное) программирование ... максимум на что их хватает это обзывать его процедурным, что не совсем верно кстати.
    Программистов от не программистов отличает не способность написать что то с использованием оператора GOTO, а способность отладить написанное ... :-))

     
  • 2.38, n (??), 09:12, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А вы почитайте обсуждение: http://marc.info/?t=129009285600010&r=1&w=2
    Фишка в том, что это никогда ни работало.

    break 5; - работает и продолжит работать
    $var = 5; break $var; - работало как break 1;

    Столько лет не работало, вот и решили это узаконить :)

     
     
  • 3.43, Аноним (-), 18:09, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А, именно с переменной, никогда сам не пробовал.
    Спасибо за объяснение :-)
     

  • 1.25, ixti (ok), 20:41, 29/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    я так понимаю traits это типа рубиновых модулей... или я что-то пропустил? :))
     
  • 1.31, o (?), 22:14, 29/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше бы сделали как нибудь так чтобы не было больше зенд оптимайзера. Вот это была бы польза!
     
     
  • 2.36, Аноним (-), 08:43, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Лучше бы сделали как нибудь так чтобы не было больше зенд оптимайзера.
    > Вот это была бы польза!

    так сами же разработчики пхп с этого профит и ловят...

     
  • 2.40, samm (ok), 11:12, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Лучше бы сделали как нибудь так чтобы не было больше зенд оптимайзера.
    > Вот это была бы польза!

    Да не используйте. есть же бесплатный и кошерный апц.

     
     
  • 3.44, zoonman (ok), 20:07, 30/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Насколько я знаю, Zend Optimizer нужен не только для ускорения работы скриптов, но и для их расшифровки.
     

  • 1.45, Sylvia (ok), 23:41, 30/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    протестировала на своем "полупродакшене" 5.4.0a1 SAPI: php-fpm
    из акселераторов корректно собрался и работает APC 3.1.7, xcache и EAccelerator пока не готовы.

    Корректно и без предупреждений в лог работают Drupal 6.x, Ilohamail, Afterlogic Mailbee (Lite), Вордпресс 3.1.х выдает вот такое предупреждение:

    PHP Warning:  Creating default object from empty value in wp-includes/user.php on line 657
    if ( !is_multisite() ) {                                                                               $blog_id = get_current_blog_id();                                                                                                    
    $blogs = array();                                                                                                                    
    $blogs[ $blog_id ]->userblog_id = $blog_id;    


    а также ругается на пару плагинов, которые впрочем работают корректно

     
  • 1.54, Аноним (-), 02:14, 02/07/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    глобалсы ещё после 3ки обещали убрать, это понятно.
    а вот отмена сейфмод - это печально.  с ним как то было спокойнее.
     
     
  • 2.56, kibab (?), 17:28, 04/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    safe_mode добавлял тормозов при работе с большим количеством include() из-за вызова lstat() на каждый компонент пути + не действовал для вызываемых из пхп программ. Это вообще костыль, каких мало, и очень хорошо, что его убирают. Надёжней использовать решения типа FreeBSD jails или чего-нибудь в линуксе.
     

  • 1.55, MVK (??), 16:20, 04/07/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    PHP без SAFE_MODE? Все на виртуалки или в chroot? PHP 5.4 - хостинг подорожает или будет дырявым? Конец shared-хостинга на PHP?
     
     
  • 2.57, kibab (?), 17:28, 04/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > PHP без SAFE_MODE? Все на виртуалки или в chroot? PHP 5.4 -
    > хостинг подорожает или будет дырявым? Конец shared-хостинга на PHP?

    См. мой ответ в 56.

     
     
  • 3.58, MVK (??), 17:35, 04/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не понимаю как можно сравнивать производительность и безопасность. Мотоцикл быстрее и маневренней автобуса, но в качестве общественного транспорта его использовать нельзя. Стоимость VPS, обеспечивающего необходимый уровень безопасности в отсутствии SAFE_MODE, существенно выше чем у shared-хостинга где PHP-работает в SAFE_MODE. Можно цшрутить PHP, но это по большому счету извращение.
     
  • 2.59, Sylvia (ok), 19:59, 04/07/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > PHP без SAFE_MODE? Все на виртуалки или в chroot? PHP 5.4 -
    > хостинг подорожает или будет дырявым? Конец shared-хостинга на PHP?

    Safe Mode давно уже пишется в требованиях многих приложений как несовместимый режим,
    php-fpm с разными пулами для разных пользователей - неплохое решение, к тому же его можно легко и в chroot посадить, хотя для хостеров "общаг" оно конечно не очень, пусть ставят suphp, mpm-itk, а делать "песочницу" из safe mode и расчитывать на безопасность... ну как бы это уже в прошлом

     
     
  • 3.60, Клыкастый (ok), 08:07, 18/10/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > php-fpm с разными пулами для разных пользователей - неплохое решение, к тому
    > же его можно легко и в chroot посадить,

    кстати, да

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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