我正在尋找關於如何構建Symfony 2.0應用程序的最佳實踐的一些指導。如果我有幾個捆綁包(Cart Bundle,Product Bundle,CMS Bundle),並且我希望在編寫頁面時使用所有這些捆綁包的各個方面,我應該如何最好地執行此操作?Symfony捆綁組合,我如何在使用多個捆綁包時構造我的代碼
我可以想象兩種方法來做到這一點,但我正在尋找哪些(如果有的話)是正確的指導。
1)通過服務公開我捆綁的所有功能,並使這些服務可以直接在樹枝中使用。通過這種方式,我可以將我的路由請求傳遞給最合適的包(因此http://myclient.org/User/Account)被傳遞給ClientUser包以進行處理,但導航中具有迷你購物車的基本模板能夠直接從內部訪問它需要的信息樹枝(我不需要通過這個)
2)創建一個訪問所有其他包以建立頁面(如VendorFrontend或VendorBackend)的包。這意味着所有的路由請求都會被傳遞給這個包,並且這個包在傳遞給模板之前會訪問頁面每個部分所需的信息。
第一個選項感覺不對,因爲我不確定是否可以讓Twig直接使用服務(雖然服務容器)?
第二個選項感覺不對,因爲它就像使用第二個路由器一樣,路由將被傳遞到一個捆綁包中,該捆綁包僅存在於組合其他捆綁包中(這裏給出的是該捆綁包緊密地耦合到捆綁包使用)。這當然違背了代碼可重用的'捆綁'的概念。
在這個例子中,我試圖構建一個非常簡單的電子商務網站,僅用於演示目的。我有一個基本模板,將有一個主導航,迷你購物車,'身體'和頁腳。我將它存儲在/ app/Resources目錄中。我打算讓所有其他模板繼承這個模板並覆蓋「body」區域。
不想spoon,,只是在正確的方向微調。謝謝。
剛看到一個很老的問題upvote。答案是在適當的地方使用子請求,並在適當的地方使用樹枝擴展。上面討論的第二個選項在您的應用程序開始增長時甚至不是一個可行的選項。它也可怕地耦合到個人捆綁。 TL; DR。 1 – calumbrodie 2013-06-13 20:15:57