Parser HTML5 Melhorado para o DomCrawler
O componente DomCrawler facilita a navegação DOM em documentos HTML e XML, tornando-o muito útil para testes funcionais e web scrapers. Internamente, esse componente usa a extensão DOM do PHP (e métodos como loadHtml()) para fazer parse do conteúdo HTML, incluindo HTML5.
Infelizmente, o suporte a HTML5 na extensão DOM do PHP está longe de ser perfeito e inclui algumas inconsistências. Em contraste, a biblioteca HTML5-PHP de terceiros fornece um parser HTML5 compatível com os padrões, e writer escrito inteiramente em PHP. Além disso, tem sido testada em projetos como o Drupal e tem mais de 7 milhões de downloads.
É por isso que no Symfony 4.3 essa biblioteca foi integrada opcionalmente no DomCrawler. Se você não fizer nenhuma alteração na sua aplicação, o componente continuará usando a extensão DOM do PHP. No entanto, se você instalar a biblioteca HTML5-PHP na sua aplicação da seguinte forma:
$ composer require masterminds/html5
Se o conteúdo que estiver sendo feito o parse for HTML5 (começar com <!doctype html>
), o componente DomCrawler usará essa biblioteca automaticamente.
Tradução de: New in Symfony 4.3: Better HTML5 parser for DomCrawler