Новое в Symfony 4.3: Улучшения в DomCrawler

Метод extract() возвращает значение аттрибута и/или ноду из заданного списка. Вы можете использовать специальный атрибут _text что бы получить значение ноды. В Symfony 3.4 вы можете так же использовать новый специальный атрибут _name, что бы получить имя элементы (название HTML тэга):

$attributes = $crawler->filterXPath('//body/*')
    ->extract(['_text', '_name', 'class'])
;

Когда нода пустая вызов методов text() и html() выбросят исключение \InvalidArgumentException с сообщением “The current node list is empty.”. В Symfony 4.3 в эти методы можно передать параметр, который будет возвращен в случае если нода пустая, то есть вы можете задать значение по умолчанию:

// return an empty string instead of throwing an exception
$title = $crawler->filter('aside h3')->text('');

// return a default HTML content instead of throwing an exception
$userProfile = $crawler->filter('.user-profile')->html('Anonymous User');