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

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

Введение

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

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

PHP 8.4 вышел , согласно списку задач подготовки. 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