Компонент 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 будет автоматически использовать эту библиотеку.