0

Symfony2 サービスを理解するのに苦労しています。私はどこでもたくさんのものを読んだことがありますが(SOのいくつかを含む)、それを完全に説明しているようには見えません。

バンドル A と別のバンドル B があるとします。A バンドルで B の機能を利用できるようにしたいとします。B をサービス コンテナに注入して、A が使用できるようにします。

Services ディレクトリが必要なバンドルはどれですか? 構成ファイルが必要なのはどれですか? 必要なら両方?そして、拡張機能はどこに行くのですか? なんで?

4

2 に答える 2

3

バンドルBは、そのservices.xmlファイルをロードするために拡張機能を必要とします。

バンドルBは、サービスを定義するために、そのservices.xmlファイルにエントリを必要とします。

バンドルBには、必要な機能を公開するサービスクラスを含むServicesディレクトリがあります。

バンドルAには特別なものは必要ありません。コンテナを使用して、バンドルBによって公開されているサービスにアクセスできるようになります。サービスIDを知っている必要があります。

あなたがいくつかのサービスをするまで、それは混乱します。

于 2012-04-13T19:55:58.690 に答える
1

最初に、次の 2 つの質問とそれに対する私の回答をお読みください。

アプリ固有のバンドルについて話していると仮定すると、バンドルは 1 つだけにして、サービスを除外することをお勧めします。次に、いくつかの方法でサービスを登録できます。

  • で直接config.yml
  • 、またはで拡張クラスを作成するAppBundle
  • からの注釈を介してJMSDiExtraBundle— これは私が個人的に好むものです。
于 2012-04-13T18:44:52.280 に答える