2013-10-30 132 views
0

我第一次嘗試使用Symfony2框架構建應用程序。但是有很多東西需要學習,我的大腦對所有的視頻/博客文章/技巧/文檔都充滿了飽和感,所有這些信息讓我感到壓力。我想以正確的方式開始我的項目,並確保我的架構會很好。我有種「捆綁」的概念。這意味着所有與功能相關的信息。但後來我問自己......什麼是功能?我們如何定義一個功能?Symfony2 - 一個包是一個功能......但是什麼是功能?

我會從我的項目中拿一個簡單的例子。我有一個用戶可以註冊/登錄到他們的帳戶。登錄是一個功能嗎?或者是整個管理界面的功能?

我也有第二個例子。在我的應用程序中,我的用戶可以將文件上傳到服務器。上傳器是否在Bundle中(文件驗證,複製文件,調整圖像大小)?我知道我的上傳器會多次使用(上傳徽標,產品圖片等),而且我明顯希望在完成代碼後重新使用我的代碼。

回答

2

捆綁包是一組實現一件事的類捆綁包是庫和te框架之間的粘合劑。例如,創建博客時,主包將是BlogBu​​ndle。你也是一個評論系統,所以它也有一個評論包。對於菜單,您使用KnpMenu庫,並因此使用KnpMenuBundle。爲了使頁面動態化,您還可以使用SonataBlockBundle和SonataAdminBundle。

這些都是功能。

回答你的情況:所有管理員的東西都是一個包。但是,此管理包不包含用戶系統,這是UserBundle的任務(例如FosUserBundle)。

在第二種情況下:您有一個MediaBundle來處理特定文件(您在配置中配置的)的上傳。您還有一個用戶系統的UserBundle和一些AdminBundle來保持對項目的控制。

+0

有趣的東西,這是否意味着一個頁面可以加載多個Bundle? 假設我的AdminBundle Twig根據來自FosUserBundle的USER_ROLE生成一個菜單。然後我的MediaBundle Twig生成我的上傳器? –

+1

是的,當然。在一個請求中,使用了很多bundle(如果以正確的方式執行) –