С момента выпуска предыдущей мажорной версии языка программирования PHP 5.3 прошло почти три года, и вот с приходом весны нам представлен релиз PHP 5.4.0, который содержит множество новшеств, улучшений и исправлений багов.
Появление PHP 5.4.0 конечно же не означает, что все серверы тотально и незамедлительно станут обновляться до новой версии, но вебмастерам стоит ознакомиться с нововведениями и ограничениями PHP 5.4, чтобы заранее оценить степень необходимости или отказа для перевода своих веб-ресурсов на новую версию PHP, или даже упредить либо спрогнозировать вероятность появления потенциальных проблем, которые могут возникнуть в будущем.
Стоит заметить, что начиная с новой версии PHP 5.4 очередные значимые релизы теперь будут выходить по плану, с периодичностью раз в год, и новая ветка будет поддерживаться в течении трех лет.
Кроме того, серия PHP 5.4 будет последней, которая еще поддерживает Windows XP и Windows 2003. Бинарных пакетов для упомянутых версий Windows после PHP 4.5 больше уже выпускаться не будет.
Итак, приступим к знакомству с характеристиками релиза PHP 5.4.0
Ключевые особенности PHP 5.4.0
- реализована поддержка конструкции «Traits», которая позволяет использовать объекты повторного, не изменяя при этом существующие объекты;
- улучшена производительность и уменьшено потребление памяти;
- Увеличена производительность парсинга запросов в FastCGI;
- добавлен сокращенный синтаксис для массивов, например как: $a = [1, 2, 3, 4]; $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
- добавлена возможность разыменование массивов, такая как foo()[0];
- поддерживается замыкание $this;
- сокращение «=» теперь всегда доступно, независимо от опции short_open_tag в конфиг-файле INI
- добавлена возможность обращения к членам классов с созданием отдельного экземпляра класса, например (new Foo)->bar();
- включена поддержка синтаксиса Class::{expr}();
- добавлена поддержка двоичного формата определения данных, как например 0b001001101;
- улучшен парсинг сообщений об ошибках и несовместимости аргументов;
- во всех сборках PHP теперь по умолчанию активирован режим поддержки мультибайтовых кодировок;
- расширение cессии теперь может отслеживать прогресс загрузки файлов;
- встроен web-сервер для CLI SAPI, для использования на стадиях разработки и тестирования;
- встроенное расширение ext/sqlite перемещено теперь во внешний каталог PECL;
- улучшен механизм использования памяти движком Zend Engine;
- добавлены новые хэш-функции joaat, fnv132, fnv164;
Изменения, влияющие на совместимость с предыдущими версиями PHP
- поддержка «register_globals», «magic_quotes» и «safe_mode» больше не осуществляется;
- синтаксис «break/continue $var» больше не поддерживается;
- опция «allow_call_time_pass_reference» удалена из файла конфигурации INI;
- в поставляемых php.ini файлах в опции «default_charset» теперь установлена кодировка «UTF-8», но если эта опция отсутствует, то по прежнему в значении используется пустая строка ("");
- алгоритм распознавания часового пояса изъят, и теперь нужно явно указывать часовой пояс, иначе будет используется «UTC»;
С полным перечнем изменений и нововведений в PHP 5.4.0 можно ознакомится на php.net
Метки: PHP, релиз
Зря они убрали «safe_mode», мой хостер никогда не обновится до 5.4, ибо боятся, что пользователи начнуть sh-скрипты запускать
Ну что же, придется как-то по другому выкручиваться хостерам, хватит уже халявничать, пора и мозгами пошевелить :)
Как альтернативу к safe_mode можно ограничить скрипты более жестким методом в httpd.conf, например как
php_admin_value open_basedir /docroot
и в php.ini например ограничить доступ к функциям
disable_functions = readfile,system