是否有Symfony2默认容器服务的列表?
下面是一个从Symfony2网站取得的关于定义一个自定义服务 (YAML符号)的例子:
services: newsletter_manager: class: %newsletter_manager.class% arguments: [@mailer, @templating]
是否有一个默认的Symfony2服务对象的列表可以注入到自定义服务作为参数(如@mailer
, @templating
, @doctrine
)?
我知道它们来自Container
(例如,在每个Controller
类中都可用)。 我已经尝试转储所有服务,但我正在寻找更详细的列表:
php app/console container:debug logger container Symfony\Bridge\Monolog\Logger mailer container Swift_Mailer translator n/a alias for translator.default ...
命令行php app/console container:debug
显示可以注入到另一个服务中的服务列表,或者从Controller with Controller::get($serviceName)
。
该列表仅显示公共服务。 将选项--show-private
添加到显示专用服务中。 私人服务只能注入另一个服务,不能从Controller或任何ContainerAware访问…
编辑 :从Symfony 2.7,使用debug:container
而不是container:debug
WebProfilerExtraBundle对此非常有用。
它还增加了一些有关路由,资产和树枝的细节,这是非常有用的。 作为一个在Symfony学习思考的人,我真的很喜欢这个包。
如果您想获取单个服务的详细信息,也可以这样做:
php app/console container:debug service_id
这会给你关于该服务的信息
您可以使用以下命令获取所需的服务详细信息:
php app/console container:debug | grep service_name
您可以使用
php app/console container:debug
获取所有可用的公共服务ID列表
php app/console container:debug --show-private
显示公共和私人服务ID
您可以列出服务
php app/console debug:container log
如果您需要更多关于一些服务,您可以使用帮助
php app/console debug:container log --help