Nuevo en Symfony 5.1: Decoración de servicios más sencilla
La decoración de servicios se emplea en las aplicaciones Symfony para modificar el comportamiento de algún servicio sin reemplazarlo completamente. Para ello es necesario inyectar el servicio original como argumento del nuevo servicio que lo decora. El problema es que el servicio original ya no existe, así que no puedes usar su ID.
En las versiones anteriores de Symfony tenías que usar el siguiente formato para
referirte al servicio original: "ID del servicio que decora" + .inner
. Esto es
bastante engorroso cuando usas clases de PHP como ID de servicios, así que en
Symfony 5.1 lo hemos simplificado para que puedas usar simplemente .inner
:
# config/services.yaml services: App\Mailer: ~ # Antes App\SpecialMailer: decorates: App\Mailer arguments: ['@App\SpecialMailer.inner'] # Después App\SpecialMailer: decorates: App\Mailer arguments: ['@.inner']
Esta funcionalidad fue contribuida por Nicolas Grekas en el pull request #36389.
Fuente: New in Symfony 5.1: Simpler service decoration
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.