Nuevo en Symfony 4.3: Mejoras en el enrutador

Parámetros booleanos en las rutas

En tus aplicaciones Symfony puedes usar parámetros de configuración en las rutas. En Symfony 4.3 hemos mejorado esta funcionalidad para soportar también los parámetros de tipo booleano, por lo que podrás hacer cosas como estas:

/**
* @Route("/test", condition="%kernel.debug%")
*/
class TestController extends AbstractController
{
    // ...
}

Esta funcionalidad fue contribuida por David Maicher en el pull request #30379.

Declaradas obsoletas algunas opciones

Las siguientes opciones de configuración del componente Routing se han declarado obsoletas y se eliminarán en Symfony 5.0:

  • generator_base_class
  • generator_cache_class
  • matcher_base_class
  • matcher_cache_class

Estas opciones ya no se usaban en el propio componente Routing. Además, definir la clase a utilizar mediante parámetros de configuración es algo que se desaconseja en Symfony desde hace varios años.

Esta funcionalidad fue contribuida por Tobias Schultze en el pull request #30249.

Las condiciones se muestran al depurar rutas

El comando debug:router es muy útil para depurar problemas de enrutamiento, ya que muestra todas las rutas de la aplicación y toda la información de cada ruta. En Symfony 4.3 hemos mejorado el comando para que también muestre la condición de la ruta (si está definida):

$ php bin/console debug:router some_route_name
 
+--------------+-------------------------------------------------------------------+
| Property     | Value                                                             |
+--------------+-------------------------------------------------------------------+
| Route Name   |                                                                   |
| Path         | /name/add                                                         |
| Host         | localhost                                                         |
| Scheme       | http|https                                                        |
| Method       | PUT|POST                                                          |
| ...                                                                              |
| Condition    | context.getMethod() in ['GET', 'HEAD', 'POST']                    |
+--------------+-------------------------------------------------------------------+

Esta funcionalidad fue contribuida por Soufian Ez-Zantar en el pull request #29254.

Fuente: New in Symfony 4.3: Routing improvements

Comentarios

Publicada el

26 de abril de 2019

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.