2012-02-27 78 views
4

我正在開發租戶都是真正的和管理員(我們)的SaaS。所以「前端」和「後端」是一樣的。無論如何,根據許多其他問題,捆綁包是以可重用方式構建項目的一種方式。頭痛的設計Symfony2捆綁組織

我真的不認爲我們的捆綁包會被重用,但我仍然需要一種方法將項目拆分成捆綁包以快速找到我們想要處理的文件。應用程序應該:

  • CRUD客戶 - 租戶應該能夠管理他們 客戶/合作伙伴關係
  • CRUD客戶標籤和關鍵字(一種方法來分類客戶)
  • CRUD通過發送廣播通知我們(郵件系統)
  • CRUD租戶 - 我們應該能夠管理我們的租戶

那麼,怎樣才能組織我的包?可能是:

  • CoreBundle:只有Doctrine2車型
  • ResourcesBundle:模板,JS,CSS,圖像
  • SystemUserBundle:管理租戶和顧客CRUD
  • MessagingBundle:消息系統

該設計如何改進?

回答

10

按照Symfony2的文檔:

在Symfony2中,捆綁就像是一個插件,除了所有在 應用程序的代碼會活得束的內側。一個軟件包不僅僅是一個容納與特定功能相關的所有內容的目錄,還包括PHP類,配置,甚至樣式表和 Javascript文件(請參閱軟件包系統)。

就個人而言,在該描述之後,我會成立了SystemUserBundle遏制Doctrine2模型和模板/ JS/CSS /明確相關的管理客戶,而不是分裂出來到CoreBundle和資源包的圖像。但是,將您的應用分解爲SystemUserBundle和MessagingBundle聽起來像是一種合理的方法。

我喜歡這樣想 - 該包是否包含了我可能需要的一些行爲,或者希望插入到我參與的未來Symfony項目中。例如,客戶管理可能會適用於任何應用程序並跨項目重用(實際上,這就是可擴展FOSUserBundle存在的原因)。

我不認爲Symfony2文檔在捆綁上有足夠的細節(尚未!),但如果你還沒有找到所有相關的部分,這些都是我所知道的: