Подтвердить что ты не робот

Есть ли список контейнеров 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
...
4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 3

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

    php app/console container:debug service_id

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

Ответ 4

вы можете использовать следующую команду для получения желаемых сведений о сервисе:

php app/console container:debug | grep service_name

Ответ 5

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

    php app/console container:debug

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

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

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

Ответ 6

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

php app/console debug:container log 

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

php app/console debug:container log  --help