2 votes

Symfony 3.3 autoconfigure les services et leur utilisation

J'ai mis à jour mon projet vers Symfony 3.3. Je veux utiliser la nouvelle fonctionnalité d'autoconfiguration pour les services. J'ai essayé de me débarrasser de $this->get() mais j'ai des erreurs dans les contrôleurs et les commandes.

Avec l'exemple de code ci-dessous dans un contrôleur, j'ai cette erreur :

recapitulatifCollesAction() requires that you provide a value for the "$checkGele" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or because there is a non optional argument after this one.

Dans les commandes, je ne sais pas comment me débarrasser des $container->get() du tout.

Avez-vous une idée de la manière dont je peux faire fonctionner ce système ?

Contrôleur :

public function recapitulatifCollesAction($estEnCours, CheckGeleService $checkGele)
{
    // ...
    $checkGele->getGeleAutorisation($colle);
    // ...
}

Ma configuration :

services:
    _defaults:
        autowire: true
        autoconfigure: true
        public: false

Edit : nouvelle erreur après modification de config.yml

New error message

2voto

yceruto Points 7075

Pour les contrôleurs, vous devez également ajouter l'argument service resolver pour câbler le service dans les méthodes "actions". C'est tout ce qui concerne l'interconnexion par défaut dans la version 3.3 :

services:
    _defaults:
        autowire: true
        autoconfigure: true
        public: false

    AppBundle\:
        resource: '../../src/AppBundle/*'
        exclude: '../../src/AppBundle/{Controller, Entity, Repository}'

    AppBundle\Controller\:
        resource: '../../src/AppBundle/Controller'
        public: true
        tags: [ controller.service_arguments ]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X