Вот пример, взятый с веб-сайта 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
в список частных. Частные службы могут быть введены только в другую службу, не доступную из контроллера или любого ContainerAware...
EDIT. Из Symfony 2.7 используйте debug:container
вместо container:debug
bin/console
в Symfony 3.
вы также можете сделать это, если хотите получить подробную информацию о одной услуге:
php app/console container:debug service_id
это даст вам информацию об этой услуге
php app/console container:debug
, чтобы вывести список сервисов.
WebProfilerExtraBundle очень полезен для этого.
Он также добавляет некоторые сведения о маршрутизации, ассените и веточке, которые очень полезны. Как кто-то, кто учится думать в Symfony, я ДЕЙСТВИТЕЛЬНО люблю этот пакет.
вы можете использовать следующую команду для получения желаемых сведений о сервисе:
php app/console container:debug | grep service_name
Вы можете перечислить службы с помощью
php app/console debug:container log
Если вам нужна дополнительная информация о некоторых услугах, вы можете использовать справку
php app/console debug:container log --help
вы можете использовать
php app/console container:debug
чтобы получить список всех доступных идентификаторов государственных услуг или
php app/console container:debug --show-private
чтобы показать идентификаторы государственных и частных служб