Есть ли список контейнерных сервисов 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 SymfonyBridgeMonologLogger
mailer container Swift_Mailer
translator n/a alias for translator.default
...
6 ответов:
командная строка
php app/console container:debugпоказывает список услуг, которые вы можете вводить в другой сервис или получить отController with Controller::get($serviceName).этот список показывает только общественные услуги. Добавьте опцию
--show-privateна дисплее частная услуги. Частные службы могут быть введены только в другую службу, не доступную с контроллера или любого контейнера...EDIT: из Symfony 2.7, используйте
debug:containerвместоcontainer:debug
The WebProfilerExtraBundle очень полезно для этого.
Он также добавляет некоторые детали о маршрутизации, assetic и ветки, которые очень полезны. Как человек, который учится думать в Symfony, мне очень нравится этот пакет.
вы также можете сделать это, если вы хотите получить подробную информацию об одной службе:
php app/console container:debug service_idэто даст вам информацию об этой службе
можно использовать
php app/console container:debugчтобы получить список всех доступных идентификаторов государственной службы или
php app/console container:debug --show-privateдля отображения идентификаторов государственных и частных служб