Есть ли список контейнерных служб Symfony2 по умолчанию? - PullRequest
53 голосов
/ 28 февраля 2012

Вот пример, взятый с веб-сайта 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
...

Ответы [ 6 ]

121 голосов
/ 28 февраля 2012

В командной строке php app/console container:debug отображается список служб, которые вы можете добавить в другую службу или получить из Controller with Controller::get($serviceName).

. В этом списке отображаются только публичные службы.Добавьте опцию --show-private в отображение частных услуг.Частные сервисы могут быть внедрены только в другой сервис, доступ к которому не возможен из контроллера или из любого контейнера ...

EDIT : из Symfony 2.7 используйте debug:container вместо container:debug

5 голосов
/ 23 апреля 2014

вы также можете сделать это, если хотите получить подробную информацию об одной услуге:

    php app/console container:debug service_id

это даст вам информацию об этой услуге

5 голосов
/ 29 марта 2012

WebProfilerExtraBundle очень полезен для этого.

Также добавлены некоторые детали о маршрутизации, сборке и ветке, которые очень полезны.Как человек, который учится мыслить в Symfony, мне ДЕЙСТВИТЕЛЬНО нравится этот пакет.

3 голосов
/ 09 мая 2014

вы можете использовать следующую команду, чтобы получить желаемую информацию об услуге:

php app/console container:debug | grep service_name
3 голосов
/ 24 апреля 2014

вы можете использовать

    php app/console container:debug

, чтобы получить список всех доступных идентификаторов общедоступных сервисов, или

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

, чтобы показывать идентификаторы как публичных, так и частных сервисов

2 голосов
/ 05 марта 2015

Вы можете перечислить услуги с помощью

php app/console debug:container log 

Если вам нужна дополнительная информация о какой-либо услуге, вы можете воспользоваться справкой

php app/console debug:container log  --help
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...