Документ

«
 
»
Разработ­ка приложен­и… HTML5. Руководс­тво р… confoo php54 [PDF, E… Yii 1.1.11 [PDF, RUS…
confoo php54 [PDF, ENG]
Спустя почти три года с момента выхода ветки 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-запросов).
 
 
 Короткий синтаксис массивов
 Поддержку примесей
 Встроенный веб-сервер для тестирования скриптов
 вернули $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го уровня

Автор

О файле

inter

  • Царь
  • Всего файлов: 383
  • Всего комментариев: 20
Добавлено28 Октябрь 2012, 14:35:56
Размер файла4564 Кб
Название файлаconfoo_php54.pdf
Просмотров438
Загрузки142
Рейтинг
Комментарии1
Последний раз редактировался28 Октябрь 2012, 14:37:56
BBC код
HTML код
Ссылка

Exif Metadata

Exif данные отсутствуют
 Скачать
Комментарии Сортировать комментарии по дате - возрастанию спаданию

inter

  • Царь
  • Всего файлов: 383
  • Всего комментариев: 20
Комментарий #1 - Добавлено 28 Июль 2013, 20:37:39
PHP 5.5
PHP 5.6
Последний раз редактировался: 16 Май 2014, 09:26:45
Aeva Media 1.4w © 2008-2011 Nao & Dragooon - Wedge: level up your forum!