Novedades Symfony 6.3

foto_post_symfony63.jpg
Solucionex
21
Abr 23

Symfony 6.3 está a la vuelta de la esquina, ya que sale en Mayo de 2023. Esto significa la llegada de algunas nuevas características bastante interesantes, como los Early Hints. A continuación, repasamos estas nuevas características que nos deja esta nueva versión.

 

 

Targeted Value Resolvers

Symfony 6.3 introduce un nuevo atributo ValueResolver para seleccionar explícitamente el resolvedor de argumentos a utilizar en los argumentos del controlador.

Este nuevo atributo permite decirle explícitamente a Symfony qué resolvedor debe usarse para obtener el valor del argumento.

 

Mapping Request Data to Typed Objects

Introduce dos nuevos atributos PHP para mapear los datos de solicitud entrantes en objetos tipados como DTOs y validarlos automáticamente.

 

HTTP Exception Attributes

Dos nuevos atributos para configurar el código de estado, las cabeceras y el nivel de registro de sus excepciones HTTP.

Actualmente, para crear tus propias excepciones HTTP, necesitas implementar HttpExceptionInterface y configurarla en la opción de framework.exception (config/packages/exceptions.yaml).

En Symfony 6.3, esto sigue funcionando, pero se puede reemplazar por estos nuevos atributos. Por ejemplo:


#[WithHttpStatus(Response::HTTP_NOT_FOUND, headers: ['x-header' => 'foo'])]

#[WithLogLevel(LogLevel::DEBUG)]

 

NoSuspiciousCharacters Constraint

Symfony 6.3 incluye una nueva restricción NoSuspiciousCharacters para evitar ataques de seguridad de suplantación basados en el uso de caracteres diferentes pero que se ven iguales.

En symfony.com nos muestran el siguiente ejemplo:

Los siguientes nombres de dominio: "symfony.com" y "ѕymfony.com". Se ven similares, pero no son iguales. En el segundo dominio, la primera letra no es una "s" (la letra "s" minúscula en el alfabeto latino) sino una "ѕ" (una letra llamada "dze" en el alfabeto cirílico).

Esta nueva característica permite validar que las cadenas de texto no contienen  caracteres problemáticos y así resolver el problema descrito anteriormente.

 

Early Hints

Symfony 6.3 agrega soporte para Early Hints, lo que permite a los navegadores descargar recursos mientras los servidores aún están preparando una respuesta. Esto mejora significativamente el rendimiento percibido.

 

 

Fuente: symfony.com