以下は、Symfony2 Webサイトから取得したカスタムサービスの定義(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)
から取得したりできるサービスのリストを示します。
このリストには、publicサービスのみが表示されます。オプション_--show-private
_をdisplay private servicesに追加します。プライベートサービスは別のサービスにのみ注入でき、コントローラーまたはContainerAwareからはアクセスできません...
[〜#〜] edit [〜#〜]:Symfony 2.7以降では、_debug:container
_の代わりに_container:debug
_を使用します
WebProfilerExtraBundle はこれに非常に便利です。
また、ルーティング、アセット、およびtwigについてのいくつかの詳細も追加します。これらは非常に役立ちます。
単一のサービスの詳細を取得する場合にも、これを行うことができます。
php app/console container:debug service_id
これにより、そのサービスに関する情報が得られます
次のコマンドを使用して、目的のサービスの詳細を取得できます。
php app/console container:debug | grep service_name
使用できます
php app/console container:debug
利用可能なすべてのパブリックサービスIDのリストを取得するか、
php app/console container:debug --show-private
パブリックサービスIDとプライベートサービスIDの両方を表示する
でサービスを一覧表示できます
php app/console debug:container log
いくつかのサービスについて詳しく知りたい場合は、ヘルプを使用できます
php app/console debug:container log --help