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

Voici un exemple, extrait du site Web Symfony2, sur la définition d’un service personnalisé (notation YAML):

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

Existe-t-il une liste des objects de service Symfony2 par défaut pouvant être injectés dans un service personnalisé en tant que parameters (tels que @mailer , @templating , @docsortingne )?

Je sais qu’ils proviennent du Container (qui est disponible, par exemple, dans chaque classe de 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 ... 

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

Cette liste affiche uniquement les services publics . Ajoutez l’option --show-private dans l’affichage des services privés . Les services privés ne peuvent être injectés que dans un autre service, non accessible depuis un contrôleur ou tout autre ContainerAware …

EDIT : à partir de Symfony 2.7, utilisez debug:container au lieu de container:debug

WebProfilerExtraBundle est très utile pour cela.

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

Vous pouvez également le faire si vous souhaitez obtenir des informations sur un seul service:

  php app/console container:debug service_id 

cela vous donnera des informations sur ce service

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 ID de service public et privé

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

 php app/console container:debug | grep service_name 

Vous pouvez lister les services avec

 php app/console debug:container log 

Si vous avez besoin de plus d’informations sur certains services, vous pouvez utiliser l’aide

 php app/console debug:container log --help