PHP 8.4: что нового и дата выхода

Источник: «PHP 8.4: new features and release date»
Релиз PHP 8.4 запланирован 21 ноября 2024 года. Давайте рассмотрим новые функции и изменения.
PHP 8.4 что нового и дата выхода
PHP 8.4 что нового и дата выхода

Введение

PHP — это проект с открытым исходным кодом. Чтобы узнать, что происходит с PHP 8.4, потребуется пара минут изучения. Например, на этой странице перечислены принятые RFC для PHP, включая PHP 8.4.

Когда выйдет PHP 8.4

PHP 8.4 выйдет 21 ноября 2024 года, согласно списку задач подготовки. PHP 8.4 будет протестирован через три альфа-релиза, три бета-релиза и шесть релиз-кандидатов.

Дата релизаРелиз PHP 8.4
6 Июня 2024 г.Первый альфа-релиз / Alpha 1
20 Июня 2024 г.Второй альфа-релиз / Alpha 2
4 Июля 2024 г.Третий альфа-релиз / Alpha 3
16 Июля 2024 г.Заморозка фич / Feature freeze
18 Июля 2024 г.Первый бета-релиз / Beta 1
1 Августа 2024 г.Второй бета-релиз / Beta 2
15 Августа 2024 г.Третий бета-релиз / Beta 3
19 Августа 2024 г.Первый релиз кандидат /RC 1
12 Сентября 2024 г.Второй релиз кандидат / RC 2
26 Сентября 2024 г.Третий релиз кандидат / RC 3
10 Октября 2024 г.Четвёртый релиз кандидат / RC 4
24 Октября 2024 г.Пятый релиз кандидат / RC 5
7 Ноября 2024 г.Шестой релиз кандидат / RC 6
21 Ноября 2024 г.Общедоступный релиз / GA

Что нового в PHP 8.4

Расширение DOM в PHP 8.4 теперь поддерживает HTML5

Расширение DOM в PHP 8.4 только что получило обновление с поддержкой парсинга и сериализации HTML5. Это означает, что больше не будет головной боли при работе с тегами, специфичными для HTML5, или при встраивании HTML в JavaScript.

Используйте новый класс DOM\HTMLDocument, и HTML5-контент будет обрабатываться правильно, в соответствии с современными веб-стандартами.

Вот как создать HTML-документ из строки:

use DOM\HTMLDocument;

$htmlDocument = HTMLDocument::createFromString('<!DOCTYPE html><html><body>Hello, HTML5!</body></html>');

Или из файла

use DOM\HTMLDocument;

$htmlDocument = HTMLDocument::createFromFile('path/to/your/file.html');

Узнайте больше: PHP RFC: DOM HTML5 parsing and serialization

PHP 8.4 по умолчанию поставляется с увеличенной стоимостью bcrypt

В PHP 8.4 стоимость bcrypt по умолчанию увеличена до 12. Что это означает?

bcrypt — функция хэширования паролей, используемая PHP. Эта функция защищает от хакеров, пытающихся взломать пароли.

Силу защиты можно регулировать. Чем выше значение или "стоимость", тем сильнее защита. bcrypt — это адаптивная функция: со временем количество итераций может быть увеличено, чтобы сделать функцию медленнее и защищённее к атакам перебора даже при увеличении вычислительной мощности.

Это важно, потому что увеличение стоимости bcrypt делает хеширование паролей медленнее.

Узнайте больше: PHP RFC: Increasing the default BCrypt cost

PHP 8.4 может надёжнее разбирать большие XML-документы

Это изменение устранило проблему в PHP-расширении ext/xml, связанную с обработкой больших XML-документов.

Противоречивые модификации в libxml2 2.7.0 непреднамеренно нарушали парсинг больших документов при использовании функций xml_parse() и xml_parse_into_struct(), что приводило к ошибке парсинга.

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

Узнайте больше: PHP RFC: XML_OPTION_PARSE_HUGE

Новые функции обрезки многобайтовых символов в PHP 8.4

Расширение mbstring в PHP 8.4 теперь включает три новые функции: mb_trim(), mb_ltrim() и mb_rtrim(). Это дополнение упрощает обрезку строк с многобайтовыми символами, улучшая предыдущее решение, заключающееся в использовании regex с preg_replace().

Новые функции обрабатывают пробельные и другие многобайтовые символы безопасным способом. Поведение по умолчанию удаляет предопределённый набор символов, включающий пробельные символы, в том числе и те, которые не попадают в диапазон \s в регулярных выражениях.

Вот функции в PHP 8.4 и поведение по умолчанию:

Узнайте больше: PHP RFC: Multibyte for trim function mb_trim, mb_ltrim and mb_rtrim

Дополнительные материалы

Предыдущая Статья

Новые возможности Laravel 11

Следующая Статья

Операции конкатенации строк в PHP