ルートのDICのパラメーターを使用できますか? (メソッドパラメーターインジェクション)
-
22-10-2019 - |
質問
コントローラー内で使用したいSymfony2プロジェクトで特定のタグでヒットしているサービスがいくつかあります。
その結果、私はそれらをコントローラーに渡すための最良の方法を把握しようとしており、おそらくSymfony2の全体的な構成システムでそれを行う方法があると考えました。
# Inside routing.yml:
my_controller:
pattern: "/path"
defaults {
_controller: Bundle:Controller:action
# The following line is kind of what I'm looking for.
myParam: @my.tag
}
# Inside a services.yml file:
my.service:
class: Bundle\MyService
tags:
- { name: my.tag }
my.otherService:
class: Bundle\MyOtherService
tags:
- { name: my.tag }
上記の2つの構成ファイルの例を考えると、「バンドル:コントローラー:アクション」のインスタンスが「bundle myservice」と「bundle myotherservice」のインスタンスを含む配列を受信するようにしたいと思います。
ありがとう!
解決
Googleグループに関するこの議論 解決策をもたらしました。ただし、APIの一部は変更されました。すなわち:
- オーバーライドするバンドルメソッドは、registextensions()ではなくbuild()です。
- 過負荷の拡張メソッドはload()not configload()です。
それに応じてコードの2つのブロックを移動して正しく実装する限り、必要な機能の行に沿って何かを取得できるはずです。
悲しいことに、これはDICによって自動化されるものではありませんが、特定のタグのすべてを取得するという要件があることに注意することが重要です。私のバンドルだけでなく、すべてのバンドルから最終的にアプリの一部になります。
所属していません StackOverflow