web-dev-qa-db-fra.com

Existe-t-il une liste des services de conteneur par défaut Symfony2?

Voici un exemple, tiré du site Web de Symfony2, sur définition d'un service personnalisé (notation YAML):

services:
    newsletter_manager:
        class:     %newsletter_manager.class%
        arguments: [@mailer, @templating]

Existe-t-il une liste des objets de service Symfony2 par défaut qui peut être injectée dans un service personnalisé en tant que paramètres (comme @mailer, @templating, @doctrine)?

Je sais qu'ils proviennent de la Container (qui est disponible, par exemple, dans chaque classe Controller). J'ai essayé de vider tous les services, mais je cherche une liste plus détaillée:

php app/console container:debug

logger container Symfony\Bridge\Monolog\Logger
mailer container Swift_Mailer
translator n/a alias for translator.default
...
53
Polmonino

La ligne de commande php app/console container:debug Affiche la liste des services que vous pouvez injecter dans un autre service ou obtenir à partir d'une Controller with Controller::get($serviceName).

Cette liste affiche uniquement les services public. Ajoutez l'option --show-private Dans l'affichage privé services. Les services privés ne peuvent être injectés que dans un autre service, non accessibles depuis un Controller ou tout ContainerAware ...

MODIFIER : À partir de Symfony 2.7, utilisez debug:container au lieu de container:debug

121
AlterPHP

WebProfilerExtraBundle est très utile pour cela.

Il ajoute également quelques détails sur le routage, assetic et twig qui sont très utiles. En tant que personne qui apprend à penser dans Symfony, j'aime vraiment ce bundle.

5
Icode4food

vous pouvez également le faire si vous souhaitez obtenir les détails d'un seul service:

    php app/console container:debug service_id

cela vous donnera des informations sur ce service

5
Victor Odiah

vous pouvez utiliser la commande suivante pour obtenir les détails de service souhaités:

php app/console container:debug | grep service_name
3
Ashish Awasthi

vous pouvez utiliser

    php app/console container:debug

pour obtenir une liste de tous les identifiants de service public disponibles ou

    php app/console container:debug --show-private

pour afficher les identifiants de service publics et privés

3
Victor Odiah

Vous pouvez répertorier les services avec

php app/console debug:container log 

Si vous avez besoin de plus d'informations sur un service, vous pouvez utiliser l'aide

php app/console debug:container log  --help
2