Есть ли список стандартных контейнерных сервисов Symfony2?

51

Вот пример, взятый с веб-сайта 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
...
  • 0
    определить «более подробный список».
  • 0
    Я уверен, что я видел список всех стандартных служб редакции, которые поставляются «из коробки» на веб-сайте symfony.com в справочной области. Но я не могу найти это сейчас.
Показать ещё 1 комментарий
Теги:
dependency-injection

6 ответов

114
Лучший ответ

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

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

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

  • 3
    Использование команды «container: debug» устарело с версии 2.7 и будет удалено в 3.0. Вместо этого используйте «debug: container». => github.com/symfony/symfony/blob/…
  • 0
    Консоль переместилась в bin/console в Symfony 3.
5

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

    php app/console container:debug service_id

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

  • 0
    Запустите php app/console container:debug , чтобы вывести список сервисов.
5

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

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

3

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

php app/console container:debug | grep service_name
2

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

php app/console debug:container log 

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

php app/console debug:container log  --help
2

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

    php app/console container:debug

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню