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
...
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
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.
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
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 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
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