Nuevo en Symfony 5.1: Configuración de rutas más sencilla
NOTA: finalmente esta funcionalidad no se añadió en Symfony 5.1, pero esperamos añadirla en Symfony 5.2.
Redirigir a otras URLs o rutas permite a las aplicaciones Symfony evolucionar sin romper ningún enlace existente. Estas redirecciones se configuran en archivos de configuración YAML, XML o PHP en vez de mediante anotaciones, por lo que la configuración es un poco verbosa.
En Symfony 5.1 la hemos mejorado para que la configuración sea mucho más concisa.
Los siguientes ejemplos muestran los cambios para el archivo config/routes.yaml
,
pero la mejora es similar para los archivos XML y PHP.
Redirigir a otra ruta:
# Antes doc_shortcut: path: /doc controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController defaults: route: 'doc_page' permanent: true # Después doc_shortcut: path: /doc redirect_to_route: 'doc_page' permanent: true
Redirigir a otra URL:
# Antes legacy_doc: path: /legacy/doc controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController defaults: path: 'https://legacy.example.com/doc' permanent: false # Después legacy_doc: path: /legacy/doc redirect_to_url: 'https://legacy.example.com/doc' permanent: false
También hemos mejorado la configuración de las rutas que renderizan plantillas directamente sin ejecutar ninguno de tus controladores:
# Antes page_privacy: path: /site/privacy-policy controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController defaults: template: 'static/privacy.html.twig' context: site_name: 'ACME' # Después page_privacy: path: /site/privacy-policy template: 'static/privacy.html.twig' context: site_name: 'ACME'
Por último, en Symfony 5.1 también puedes configurar las URLs que ya no están
disponibles, temporalmente (código 404
) o permanentemente (código 410
), con
la nueva opción gone
:
conference: path: /foo-conference gone: true permanent: true
Esta funcionalidad fue contribuida por Jules Pietri en el pull request #30501.
Fuente: New in Symfony 5.1: Improved route configuration
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.