Créer une option globale à la console Symfony2

Il peut être intéressant dans certains cas de fournir une option globale à toutes les commandes de la console symfony, nous allons voir qu’il est très simple de créer ce type d’option à l’aide d’un listener.

Création du listener

Comme je viens de le mentionner, pour créer l’option il suffit de créer un listener. Le listener doit écouter l’événement console.command. Créons donc cette classe :

Accompagné de la définition du service :

Et c’est tout, lorsque vous voudrez invoquer n’importe quelle commande, qu’elle soit mise à disposition par symfony ou qu’elle soit de votre création, l’option --locale pourra être renseignée.
Vous pouvez faire le test en appelant app/console help help, la dernière option de la liste affichée sera --locale.

Pour accéder à la valeur de cette option, il suffira de faire comme d’habitude : $input->getOption('locale'); dans n’importe quelle classe définissant une commande.

Voir l’étude de cas
Lire l’article
Voir le témoignage
Fermer