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
- Mapping Resquest Data to Typed Objects
- HTTP Exception Attributes
- NoSuspiciousCharacters Constraint
- Early Hints
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