0

実行時にSymfony2のサービスにメソッド呼び出しを設定することは可能ですか?

実行時に次のように設定したいと思います。

calls:
            - [ setEventDispatcher, [ @event_dispatcher ] ]

シナリオは次
のとおりです。 onKernel イベントにリスナーがあり、リクエストでパラメーターが設定されているかどうかを確認し、コンテナー内のサービスへのメソッド呼び出しを追加します。
したがって、遅延読み込みは維持されると思います。

ビルダーにメソッドsetMethodCalls()があるのを見たので、これを使用できますか?

4

1 に答える 1

1

バンドルでは、セクションだけでなく、使用したいいくつかの条件を持つカスタムセクションもフェッチするように、メソッドを拡張しSymfony\Component\DependencyInjection\Loader\YamlFileLoaderて書き直す必要があると思います。parseDefinition()calls

そして最後に、次のようなサービス構成ができます。

calls:
    always:
        - [ setEventDispatcher, [ @event_dispatcher ] ]
    on_condition:
        variable: "value"

それが役に立てば幸い...

于 2012-07-27T14:35:19.330 に答える