PHP 8.4 привносит свежесть в старую боль — работу с HTML-документами через
DOMDocument. Встречайте: Dom\HTMLDocument из нового пространства имён Dom\*. Он: более совместим со стандартами, работает быстрее, и избавляет от некоторых багов старого DOM.🧱 Интерфейс знакомый:
loadHTML, getElementById, saveHTML — всё на месте. Но не всё так просто:🚫 Внимание: это не прямой заменитель
DOMDocument. Старый и новый классы работают параллельно.📌 Что нового:
Dom\HTMLDocument::createFromString($html) вместо loadHTML()Поддержка CSS-селекторов напрямую:
querySelector() и querySelectorAll() 🔥Более строгий парсинг: предупреждения, если нет
<!DOCTYPE>, автоматическое добавление <head> и <body>importLegacyNode() — чтобы не страдать при переносе узлов из старых DOMDocument⚡ Быстрее на лицо:
1 млн итераций:
DOMDocument: ~4.3 секDom\HTMLDocument: ~3.4 сек🛠️ Документации мало, но JetBrains уже подготовили stubs для PHPStorm. Найдёшь тут:
👉 Github
🎯 В целом — большое улучшение для тех, кто серьёзно работает с HTML в PHP. В будущем ждём больше инструментов и автоматической миграции
🔗 Читать статью