2016-04-22 60 views
1

我很難選擇正確的方式來開發我的應用程序。 我的應用程序將會非常複雜,我希望它的架構很好。 實際上我將有4個「應用程序」(adminAPI,clientAPI,frontWebsite,adminArea),我希望每個這些「應用程序」都可以在生產中的不同服務器上運行。Symfony架構

所以我的第一個想法是創建4個symfony項目。但是我必須分享很多關於實體,表單,驗證器和商業邏輯的代碼。

所以我發現我只能爲每個應用程序創建一個具有不同AppKernel的項目。這對我來說很好。 這是正確的解決方案嗎? 如果我喜歡它,我是否應該爲每個AppKernel創建一個Bundle以保持事物清潔,並且爲實體,表單,管理器和處理程序等共享類創建一個「CoreBundle」? 或者像Symfony最佳實踐中說的那樣保持全部在一個AppBundle中更好?

正如您所看到的,我有點困惑,我真的需要您的幫助來創建一個快速增長的專業應用程序。 謝謝你的時間。

+0

在這種情況下,包含所有共享思考的專用包的想法可以確定。您將composer.json中的依賴關係(作爲獨立項目的廣告版本)作爲其他項目之間的分享包共享。所以你有你的應用程序的4個回購加上一個corebundle回購,作爲依賴 – Matteo

+0

老實說,我認爲你使用的框架應該是你可以在遊戲中做出相對較晚的決定。應用程序的核心業務邏輯應該能夠存在,而不依賴於任何框架。你只應該開始考慮管理內容的框架(持久性,驗證,用戶界面等)。 – GordonM

+0

你可能會對這個老問題感興趣:[Symfony2概念問題:一般捆綁與特定問題](http://stackoverflow.com/a/8016867/2257664)。 –

回答

1

您不能爲應用程序的每個區域創建一個項目。 使用Symfony2您將創建多個開發環境。

您可以爲每個人創建一個區域,只需在內核中決定女巫包應該加載取決於您選擇的環境。

+0

好吧,這是我的想法。但是如果我這樣做,我必須爲每個環境創建配置文件嗎?當我部署我的應用程序時,我將部署4臺服務器(每個應用程序的一部分)全部代碼並重定向到正確的前端控制器? – ybert

+0

BlaBlaCar使用這種方法,但不會過多擴展,請參閱https://speakerdeck.com/odolbeau/symfony-at-blablacar?slide=26 – Matteo

+0

的演示文稿。您不必在4個不同的服務器上部署,即可只需在一臺服務器上部署即可。 你可以像4 vHost/nginx配置一樣創建。 –

0

我會創建一個帶有所有共享功能的「CoreBundle」,然後在4個Symfony項目中使用它。