Nuevo en Symfony 5.1: Mejoras en el enrutamiento

Symfony 5.1 incluirá mejoras muy importantes relacionadas con el enrutamiento, tales como la prioridad en las anotaciones de rutas y la configuración simplificada de rutas. En este artículo mostramos otras mejoras menores pero interesantes.

Añadido el atributo stateless

Las rutas ahora pueden definir una opción booleana llamada stateless. Si es true, la ruta indica que no va a utilizar la sesión. Si la ruta acaba usando la sesión, verás una excepción en el entorno de desarrollo y un mensaje de log en producción:

// src/Controller/MainController.php
namespace App\Controller;
 
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
 
class MainController extends AbstractController
{
    /**
     * @Route("/", name="homepage", stateless=true)
     */
    public function homepage()
    {
        // ...
    }
}

Esta funcionalidad fue contribuida por Mathias Arlaud en el pull request #35732 y #35782.

Variables de entorno en las condiciones de la rutas

Las condiciones de las rutas definen expresiones lógicas que las rutas deben cumplir para poder ejecutarse. En Symfony 5.1, hemos mejorado las expresiones para que puedas incluir variables de entorno y cualquiera de los procesadores de variables de entorno definidos por Symfony:

/**
 * @Route("/new-feature", condition="env('bool:IS_FEATURE_ENABLED') === true")
 */
public function __invoke()
{
    // esta ruta solo se ejecuta si el valor almacenado en la variable
    // de entorno IS_FEATURE_ENABLED es TRUE
}

Esta funcionalidad fue contribuida por Ahmed Tailouloute en el pull request #35747.

Configuración más sencilla del contexto de la petición

NOTA: esta sección explicaba una funcionalidad de Symfony 5.1 que al final se reemplazó por esta otra funcionalidad antes del lanzamiento final de Symfony 5.1.


Fuente: New in Symfony 5.1: Routing improvements

Comentarios

Publicada el

2 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.