Релиз PHP 8.4 запланирован 21 ноября 2024 года. Давайте рассмотрим новые функции и изменения.
Что нового в 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 8.4 стоимость bcrypt по умолчанию увеличена до 12.
Что это означает?
bcrypt — функция хэширования паролей, используемая PHP. Эта функция защищает от хакеров, пытающихся взломать пароли.
Силу защиты можно регулировать. Чем выше значение или "стоимость", тем сильнее защита. bcrypt — это адаптивная функция: со временем количество итераций может быть увеличено, чтобы сделать функцию медленнее и защищённее к атакам перебора даже при увеличении вычислительной мощности.
Это важно, потому что увеличение стоимости bcrypt делает хеширование паролей медленнее.
PHP 8.4 может надёжнее разбирать большие XML-документы
Это изменение устранило проблему в PHP-расширении ext/xml, связанную с обработкой больших XML-документов.
Противоречивые модификации в libxml2 2.7.0 непреднамеренно нарушали парсинг больших документов при использовании функций xml_parse() и xml_parse_into_struct(), что приводило к ошибке парсинга.
В PHP 8.4 появилась новая опция парсера для правильной обработки больших XML-документов и предотвращения ошибки парсинга, позволяя разработчикам разбирать большие XML-документы, не прибегая к сложным обходным путям.
Новые функции обрезки многобайтовых символов в PHP 8.4
Расширение mbstring в PHP 8.4 теперь включает три новые функции: mb_trim(), mb_ltrim() и mb_rtrim(). Это дополнение упрощает обрезку строк с многобайтовыми символами, улучшая предыдущее решение, заключающееся в использовании regex с preg_replace().
Новые функции обрабатывают пробельные и другие многобайтовые символы безопасным способом. Поведение по умолчанию удаляет предопределённый набор символов, включающий пробельные символы, в том числе и те, которые не попадают в диапазон \s в регулярных выражениях.
Вот функции в PHP 8.4 и поведение по умолчанию:
- mb_trim($string, $characters): Обрезает символы с обоих концов строки.
- mb_ltrim($string, $characters): Обрезает символы с начала (левой стороны) строки.
- mb_rtrim($string, $characters): Обрезает символы с конца (правой стороны) строки.