La magie de Symfony ou comment s’y perdre ;)

Développement

Depuis Symfony 2.8, le nouveau service « auto wiring » (comprenez branchement automatique) va permettre à Symfony d’être encore plus magique qu’il ne l’est déjà ! Mais je ne sais pas si c’est vraiment une bonne idée.

D’après la news : Symfony 2.8: Service Auto Wiring, on aura la possibilité de déclarer un service en omettant les paramètres passé au constructeur. La magie opérera : un service privé sera créé pour la classe omise et il sera injecté directement dans le constructeur du service déclaré.

Exemple avec un service Mailer qui a besoin d’un Logger pour fonctionner.

Déclaration classique :

# app/config/services.yml
services:
    logger:
        class: AppBundle\Service\Logger
 
    mailer:
        class: AppBundle\Service\Mailer
        arguments: ['@logger']

Déclaration magique :

# app/config/services.yml
services:
    mailer:
        class: AppBundle\Service\Mailer
        autowire: true

La c’est trop magique à mon goût et je ne sais pas si les performances seront impactées.

En tout cas, c’est déjà bien que cette fonctionnalité soit désactivée par défaut ;)

Laisser un commentaire