Nuevo en Symfony 4.3: Serialización nativa de PHP para Messenger
En Symfony 4.2, el componente Messenger utiliza el componente Serializer para serializar los mensajes a JSON y deserializarlos después. La razón original para hacer esto era que al exportar los mensajes en formato JSON, cualquier otro sistema podría consumirlos, incluso si no usaban Symfony o PHP.
Aunque al principio pensamos que esto era lo mejor, tiene un inconveniente muy importante: el serializador por defecto requiere que el objeto a serializar tenga getters y setters o propiedades públicas. Esto hace que tengas que diseñar tus clases de acuerdo a como lo necesita el componente Messenger.
Por todo ello, y considerando que usar JSON complica más las cosas en vez de
simplificarlas, en Symfony 4.3 hemos decidido utilizar la serialización nativa
de PHP gracias a una nueva clase llamada PhpSerializer
que utiliza las
funciones serialize()
y unserialize()
de PHP para serializar los mensajes.
Si prefieres continuar usando el serializador JSON anterior (o incluso, tu propio serializador) puedes utilizar la siguiente configuración:
# config/packages/messenger.yaml framework: messenger: serializer: # ID del servicio que serializa mensajes id: 'messenger.transport.symfony_serializer'
Esta funcionalidad fue contribuida por Ryan Weaver en el pull request #29958.
Fuente: New in Symfony 4.3: Native PHP Serialization for Messenger
Comentarios
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.