Anton Poletayev
unread,Dec 7, 2018, 8:24:58 AM12/7/18You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Hello, All!
После года разработки представлен релиз языка программирования PHP 7.3.
Hовая ветка включает серию новых возможностей,
а также несколько изменений, нарушающих совместимость.
Ключевые улучшения в PHP 7.3:
- Реализован гибкий синтаксис многострочной
вставки (строки heredoc и nowdoc), не требующий
обязательного перевода строк после маркера
окончания блока и допускающий выравнивание отступами;
- Добавлена поддержка назначения ссылок в list():
теперь поддерживается синтаксис "list($a, &$b) = $array;",
эквивалентный присвоению "$a = $array[0]; $b =& $array[1];".
Предложен также упрощённый синтаксис присвоения,
позволяющий указывать вместо "list()" квадратные скобки,
например "[$a, &$b] = $array;"
- При вызове функций и методов теперь допускается
оставление запятых в конце списка аргументов,
например, "unset($foo, $bar, $baz,)";
- Расширение PCRE переведено на ветку PCRE2;
Выражение "instanceof" теперь допускает указание
литералов в качестве первого операнда
(в такой ситуации результат всегда будет FALSE);
- Добавлено новое исключение CompileError,
наследуемое от ParseError и генерирующее
для некоторых типов ошибок перехватываемое
событие CompileError вместо фатальной ошибки;
- Значительно расширены возможности и увеличена
производительность дополнения MBString,
в том числе добавлены полноценные средства
для манипуляций с регистром символов
(MB_CASE_LOWER, MB_CASE_UPPER, MB_CASE_TITLE, MB_CASE_FOLD и т.п.),
до версии 11 обновлена поддержка спецификаций Unicode,
добавлена поддержка строк, размером больше 2 Гб,
в функциях mb_ereg_*() добавлена поддержка именованного
захвата элементов. Объявлены устаревшими вызовы mbereg_*(),
вместо которых следует использовать corresponding mb_ereg_*();
- В SAPI-модуль FPM добавлены новые глобальные опции log_limit и log_buffering
для ограничения размера выводимой в лог строки
и включения режима записи в лог без буферизации.
Также добавлена опция decorate_workers_output,
позволяющая отключить декорирование вывода
от рабочих процессов при активации режима catch_workers_output;
- В расширении LDAP в большинстве функций,
таких как ldap_add и ldap_read, появился параметр serverctrls
для отправки на сервер дополнительных сообщений
(LDAP Controls - механизм расширения операций LDAP
и передачи дополнительной информации вместе с запросом),
а в ldap_parse_result для получения клиентом
дополнительных сообщений от сервера.
Hалажена поддержка режимов LDAP_OPT_SERVER_CONTROLS
и LDAP_OPT_CLIENT_CONTROLS в функциях ldap_get_option и ldap_set_option;
- В заголовок страницы phpinfo(), добавлено отображение переменной PHP_VERSION;
- В расширение Date добавлен метод DateTime::createFromImmutable();
- В расширение GD в функции imagecreatefromstring()
появилась поддержка создания изображений в формате WebP;
- При сборке с опцией configure --with-password-argon2
в функциях password_hash(), password_verify(),
password_get_info() и password_needs_rehash()
обеспечена поддержка алгоритмов хэширования паролей Argon2i и Argon2id;
- Добавлена функция hrtime() для вывода значения времени
(число секунд и наносекунд) на основании показаний монотонного таймера,
отражающего неразрывно увеличивающееся время, прошедшее
с определённого момента в прошлом;
- Представлена новая функция net_get_interfaces()
для получения информации о доступных сетевых интерфейсах;
- Улучшена работа сборщика мусора;
- Переписана на PHP утилита ext_skel (генерирует шаблоны кода дополнений),
для запуска которой теперь не нужно дополнительных зависимостей
и её можно запускать в том числе в Windows ('php ext_skel.php');
- Объявлено устаревшим определение имён констант не чувствительных к регистру
(определялись при помощи указания в define специального флага).
Приведены к соответствию с поведением Unix операции
открытия файлов в Windows: файловые дескрипторы теперь
по умолчанию открываются в Windows в режиме, допускающем чтение,
запись и удаление (открытые файлы теперь можно удалить);
- Прекращена поддержка платформы BeOS.