Nuevo en Symfony 5.1: Mejoras en el componente HttpFoundation
Añadido InputBag
La clase ParameterBag
definida por Symfony es como un array orientado a
objetos que almacena valores relacionados y proporciona métodos como get()
,
set()
, has()
, etc. Symfony también define clases especializadas que
extienden de ParameterBag
(ej. FileBag
para los archivos subidos,
ServerBag
para cabeceras HTTP, etc.)
En Symfony 5.1 hemos introducido una nueva clase InputBag
(que extiende de
ParameterBag
) para manejar los valores proporcionados por el usuario (via las
variables superglobales $_GET
, $_POST
, $_REQUEST
y $_COOKIE
).
Esta funcionalidad fue contribuida por Saif en el pull request #34363.
Sesiones encriptadas
Encriptar la información es una de las recomendaciones básicas para minimizar
los daños causados por un robo de datos.En Symfony 5.1 puedes encriptar los
datos de las sesiones usando el nuevo MarshallingSessionHandler
, que a su
vez usa el marshaller del componente Cache.
La siguiente configuración define la información necesaria para empezar a encriptar las sesiones:
Symfony\Component\Cache\Marshaller\SodiumMarshaller: decorates: 'session.marshaller' arguments: - ['%env(file:resolve:SODIUM_DECRYPTION_FILE)%'] - '@.inner'
Esta funcionalidad fue contribuida por Ahmed Tailouloute en el pull request #35804.
Soporte de todas las directivas Cache-Control de HTTP
Symfony soporta las directivas Cache-Control de HTTP más comunes (etag
,
last_modified
, max_age
, public
, etc.). En Symfony 5.1 hemos decidido
añadir soporte para todas las directivas cache-control:
etag
immutable
last_modified
max_age
must_revalidate
no_cache
no_store
no_transform
private
proxy_revalidate
public
s_maxage
Esta funcionalidad fue contribuida por Saif en el pull request #35748.
Constructor de Cookies
Las cookies definen muchas opciones de configuración. Por eso el constructor
Cookie::create()
define nueve argumentos. En Symfony 5.1 hemos añadido varios
métodos para convertir la clase Cookie
en un "objeto constructor" ("builder
object" en inglés):
use Symfony\Component\HttpFoundation\Cookie; // Antes $cookie = Cookie::create( 'foo', 'bar', new \DateTime('+1 year'), '/', '.myfoodomain.com', true, true ); // Después $cookie = Cookie::create('foo') ->withValue('bar') ->withExpires(new \DateTime('+1 year')) ->withDomain('.myfoodomain.com') ->withSecure(true) ->withHttpOnly(true);
Todos los métodos withXXX()
devuelven una nueva instancia del objeto Cookie
,
por lo que también puedes usarlos para cambiar alguna opción de una cookie
existente y crear una nueva cookie.
Esta funcionalidad fue contribuida por Nikita Safonov en el pull request #35215.
Fuente: New in Symfony 5.1: HttpFoundation improvements
Comentarios
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.