Nuevo en Symfony 5.1: Resolución de URL
El componente DomCrawler facilita el procesado de los contenidos de los documentos HTML y XML. Normalmente se utiliza en los tests funcionales de las aplicaciones Symfony, pero también se puede usar para crear un crawler real que rastree y obtenga los contenidos de sitios web enteros.
Una necesidad habitual cuando se crea un crawler es la conversión de los
enlaces de la página HTML, que normalmente son relativos, en URL absolutas (para
poder seguir navegando por los enlaces del sitio). Así por ejemplo, si la URL
base del sitio es https://example.com/foo
y el enlace es ../bar?foo=1
, la
URL absoluta es https://example.com/bar?foo=1
.
Esta transformación de URL relativas en absolutas es mucho más compleja de lo
que parece, ya que tienes que tener en cuenta los parámetros de la query
string, los enlaces a secciones de la página, etc. El componente DomCrawler ya
incluía la lógica para hacer esta conversión, pero en Symfony 5.1 la hemos
extraído a una clase llamada UriResolver
para que puedas reusar esa lógica en
tus aplicaciones:
use Symfony\Component\DomCrawler\UriResolver; $absoluteUrl = UriResolver::resolve('../bar?foo=1', 'https://example.com/foo'); // $absoluteUrl = 'https://example.com/bar?foo=1'
Esta funcionalidad fue contribuida por Grégoire Pineau en el pull request #35415 y #35667.
Fuente: New in Symfony 5.1: URI Resolver
Comentarios
Proyectos Symfony destacados
La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.