4

他の開発者が独自のバンドルを作成して他の機能を実装する可能性を残して、メイン バンドルに基づいてアプリケーションを作成したいと考えています。

Symfony 2.0 はそのための良い選択のようですが、デカップリングを維持しながらバンドルを連携させる方法がわかりません。

MainBundle では、以下のようなユーザー リストを生成するコントローラーを作成します。

 user1      edit   remove 
 user2      edit   remove
 ....

サードパーティのバンドルがカスタム ボタンをこのリストに追加できるようにするにはどうすればよいですか?

たとえば、AvatarBundleImage をアップロードするボタンを追加したい場合があり、 SendEmailBundleはユーザーに電子メールを送信するボタンを追加したい場合などです。

バンドルの独立性を維持するには? どうやってやるの?

どうもありがとう、マッシモ

4

2 に答える 2

0

私の知る限り、提供されているバンドルの機能を変更/追加する方法は2つしかありません。

  • コードを変更する
  • テンプレート/コントローラーのオーバーライド

この場合、2番目の方がはるかに好ましいようです。テンプレートを上書きする方法は次のとおりです。

  • app/Resourcesで新しいテンプレートを定義します
  • 子バンドルを作成し、テンプレートをオーバーライドします

オーバーライドコントローラーも必要な場合は、2番目の方法が唯一の方法です。私の意見では、それはよりクリーンで、特定のものを一般的なアプリフォルダーに入れるので、それは私の個人的な好みでもあります。

とにかく、それはFOSUserBundleのドキュメントではるかによく説明されています:

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_templates.md

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_controllers.md

https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/overriding_forms.md

そしてもちろん、このクックブックの記事:
http ://symfony.com/doc/current/cookbook/bundles/inheritance.html

お役に立てれば、

ディーター

于 2011-10-22T09:21:14.557 に答える