# Bundle/包
SF對一個應用的結構安排,是基于bundle(包)。這個應用的MVC結構,所有的配套文件都被集中在一個包里。這么做是有好處的。比如,一個應用不再僅僅是一個獨立的應用,只要符合一定的規范,這個應用(包)完全可以嵌入到另外一個更大的應用之中。實際上,我們之前看到過的所謂第三方庫,都是一個一個獨立的bundle,通過composer安裝到我們的應用中,成為我們應用中的一部分,并為我們的應用提供功能。
在實際應用中,我們可以將一個包理解為一個目錄。一個典型的包可能包括如下的內容:

其中:
* Controller中存放所有控制器代碼。
* DataFixtures中是樣本數據填充。
* Entity中是所有的數據實體。可以簡單地理解為一張張表格。
* Form中存放所有的表單類型,用于生成表單。
* Repository中是對數據實體的一些自定義操作。
* Resources/config中有一部分是以YML形式定義的Doctrine數據實體;另一部分可以存放針對本包的配置文件,如`routing.yml`文件。
* Resources/views中會存放所有本包要用到的視圖模板,以Twig語法寫成。
* Tests中可以存放各種測試文件,既可以是單元測試也可是是功能測試。
* Twig中存放著專為Twig編寫的定制過濾器。
在實際應用中,你的應用可能不會有這么多目錄。一個典型的SF2安裝,是沒有`DataFixtures`,?`Form`,`Repository`,?`Twig`等目錄的。
事實上,有些目錄的命名也完全是任意的。上面截屏中的名字只是列出了一個我所開發的應用中的例子。
- 引言
- 1 LAMP
- 1.1 安裝虛擬機
- 1.2 安裝Vagrant
- 1.3 安裝Ubuntu
- 1.4 安裝Apache 2
- 1.5 安裝PHP
- 1.6 安裝MySQL服務器
- 1.7 最后的微調
- 1.8 設置一個虛擬主機
- 1.9 一個趁手的IDE
- 2 Symfony 3和重要構件
- 2.1 Symfony 3
- 2.2 Doctrine
- 2.3 Twig
- 2.4 Composer
- 3 Symfony重要概念
- 3.1 MVC
- 3.2 Bundle/包
- 3.3 Route/路由
- 3.4 Controller/控制器
- 3.5 Entity/實體
- 3.6 Repository/倉庫
- 3.7 Template/模板
- 3.8 Test/測試
- 4 藏書管理程序的結構
- 5 創建應用
- 5.1 建立版本管理
- 5.2 建立數據庫
- 5.3 應用結構
- 5.4 建立數據庫實體
- 5.5 樣本數據
- 5.6 路由
- 5.7 模板
- 5.8 開始編寫首頁
- 5.9 書籍詳情頁面
- 5.10 書籍列表頁面
- 5.11 書籍搜索
- 6 用戶和后臺
- 7 結語