ルートのDICのパラメーターを使用できますか? (メソッドパラメーターインジェクション)

StackOverflow https://stackoverflow.com/questions/7301303

質問

コントローラー内で使用したい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によって自動化されるものではありませんが、特定のタグのすべてを取得するという要件があることに注意することが重要です。私のバンドルだけでなく、すべてのバンドルから最終的にアプリの一部になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top