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

Publicada el

29 de abril de 2020

Etiquetas

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.