2012-02-27 3 views
4

私は、テナントが本当の人と管理者(私たち)の両方であるSaaSを開発しています。したがって、 "fornt-end"と "back-end"は同じです。とにかく、他の多くの質問によれば、バンドルはプロジェクトを再利用可能な方法で構築する方法です。頭痛はSymfony2バンドル組織を設計します

私たちのバンドルが再利用されるとは思わないが、まだ作業したいファイルをすばやく見つけるためにプロジェクトをバンドルに分割する方法が必要です。アプリケーションべき:顧客のため

  • CRUD - テナントはにより送信された放送通知のCRUD顧客タグとキーワードのCRUD(顧客を分類する方法)
  • その 顧客/提携
  • を管理することができるはずですテナントのための私たち(メッセージング・システム)
  • CRUD - 私たちは私たちのテナント

を管理することができるはずです、どのように私のバンドルを整理することができますか?可能性:

  • CoreBundle:のみDoctrine2モデル
  • ResourcesBundle:テンプレート、JS、CSS、画像
  • SystemUserBundle:管理テナントや顧客CRUD
  • MessagingBundle:メッセージシステム

このデザインをどのように改善できますか?

答えて

10

Symfony2のドキュメントによると:Symfony2ので

、バンドルは アプリケーション内のすべてのコードは、バンドル内生きることを除いて、プラグインのようなものです。バンドルは、 で、特定の機能に関連するすべてのものを格納するディレクトリよりも、 にはPHPクラス、設定、さらにはスタイルシート、 Javascriptファイル(「バンドルシステム」を参照)が含まれます。個人的に

、この説明の後、私は特に、むしろCoreBundleとのResourceBundleの中にそれらを分割するよりも、顧客の管理に関連するDoctrine2モデルとテンプレートの/のJS/CSS /画像を含むようにSystemUserBundleを設定します。しかし、あなたのアプリをSystemUserBundleとMessagingBundleに分割するのは合理的なアプローチのようです。

私はそれをこのように考えています。バンドルは、私が関わっている将来のSymfonyプロジェクトに必要な、あるいはプラグインしたい動作をカプセル化していますか?任意のアプリケーションに適用し、プロジェクト間で再利用することができます(実際、これが拡張可能なFOSUserBundleが存在する理由です)。

私は、Symfony2のドキュメントがバンドルについて十分な詳細情報を持っているとは思わない(まだ!)しかし、あなたは、これらは私の知るものであり、関連するすべてのセクションを発見していない場合:

関連する問題