(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

PHP 5.4 - вышел в релиз

Источник: phpclub
Absinthe

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


Короткий синтаксис массивов
Поддержку примесей
Встроенный веб-сервер для тестирования скриптов
вернули $this/self в анонимные функции (ура!)
добавили флаги в json_encode. Особо интересны JSON_PRETTY_PRINT, JSON_UNESCAPED_UNICODE
добавили JsonSerializable интерфейс, сам знаете зачем
Добавили флаги мультикаста у сокетов
debug_backtrace теперь можно ограничить
Числа можно записывать в бинарном виде 0b1010110. Идеально для битовых масок.
Добавлен callable type hint для функций (уж лучше бы завели тип переменной callback).
(new foo)->bar()
func()[3]
поддержка DTrace для PHP-магов 80го уровня

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 01.06.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Windows Professional 10, Электронный ключ
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Standard (corporate)
Microsoft 365 Business Basic (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Один день системного администратора
ЕRP-Форум. Творческие дискуссии о системах автоматизации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100