Новое в Symfony 4.3: Улучшенный анализатор HTML5 для DomCrawler

Компонент DomCrawler облегчает навигацию по DOM для документов HTML и XML, что делает его очень полезным для функциональных тестов и веб-скребков. Внутренне этот компонент использует расширение PHP DOM (и такие методы, как loadHtml()) для анализа содержимого HTML, включая HTML5.

К сожалению, поддержка HTML5 в расширении PHP DOM далека от совершенства и включает в себя некоторые несоответствия. Напротив, сторонняя библиотека HTML5-PHP предоставляет совместимый со стандартами синтаксический анализатор и средство записи HTML5, полностью написанные на PHP. Более того, он был испытан в бою в таких проектах, как Drupal, и его скачали более 7 миллионов раз.

Вот почему в Symfony 4.3 решили дополнительно интегрировать эту библиотеку в DomCrawler. Если вы не внесете никаких изменений в свое приложение, компонент будет продолжать использовать расширение PHP DOM. Однако если вы установите библиотеку HTML5-PHP в свое приложение следующим образом:

composer require masterminds/html5

Если проанализированным содержимым является HTML5 (он начинается с <!doctype html>), то компонент DomCrawler будет автоматически использовать эту библиотеку.