Symfony2學習筆記之目錄結構
瞭解框架的目錄結構是框架快速入門的一個途徑,一個成熟的框架,每個功能模組都被劃分存放在不同的目錄。
Symfony2一級目錄結構:
├── app //這目錄下包含了,配置檔案(應用的配置檔案會被import到這裡面的配置檔案中才生效)、快取的類、快取的模板
├── bin
├── composer.json
├── composer.lock
├── LICENSE
├── README.md
├── src //我們編寫的應用存放在這個目錄下(包含Controller、Model、View、路由配置檔案、應用的配置檔案等)
├── UPGRADE-2.2.md
├── UPGRADE-2.3.md
├── UPGRADE-2.4.md
├── UPGRADE.md
├── vendor //Symfony2的核心模組(HttpKernel元件、DependencyInjection元件等)和第三方外掛(最常用的第三方外掛SonataAdmin)存放在這目錄下
└── web //入口指令碼檔案存放在這目錄下
├── bin
├── composer.json
├── composer.lock
├── LICENSE
├── README.md
├── src //我們編寫的應用存放在這個目錄下(包含Controller、Model、View、路由配置檔案、應用的配置檔案等)
├── UPGRADE-2.2.md
├── UPGRADE-2.3.md
├── UPGRADE-2.4.md
├── UPGRADE.md
├── vendor //Symfony2的核心模組(HttpKernel元件、DependencyInjection元件等)和第三方外掛(最常用的第三方外掛SonataAdmin)存放在這目錄下
└── web //入口指令碼檔案存放在這目錄下
以下為Symfony2二級目錄和子目錄的主要說明
web目錄主要檔案說明:
├── app_dev.php //除錯模式下的入口檔案(在除錯模式下可以額外輸出應用的執行資訊,包括載入時間、執行的路由、執行sql語句等)
├── apple-touch-icon.png
├── app.php //生產環境下的入口檔案(相當於TP框架index.php作用)
├── bundles
├── config.php
├── favicon.ico
├── robots.txt
├── apple-touch-icon.png
├── app.php //生產環境下的入口檔案(相當於TP框架index.php作用)
├── bundles
├── config.php
├── favicon.ico
├── robots.txt
app目錄主要目錄和檔案說明:
├── AppCache.php
├── AppKernel.php //入口檔案裡面會初始化一個AppKernel類,AppKernel類就是在這個檔案裡面,Appkernel類的主要功能是初始化整個web應用的Bundle。
//包括Symfony2框架的核心Bundle、第三方外掛的Bundle、我們自己編寫的應用的Bundle,Bundle在Symfony2裡面就相當於一個具有完成
//某一功能的完整的包,而且我們要用的Bundle都必須在AppKernel類裡面註冊。
├── autoload.php //該檔案負責自動載入註冊在裡面的類,通常我們不需要手動修改它
├── bootstrap.php.cache //Symfony2核心的類的快取檔案,Symfony2框架必須用到的核心的類都會被編寫整理到這個檔案裡面。這樣做的目的是減少執行的時候開啟
//檔案的個數,提高執行的速度。因為不同的類都被存放在不同的檔案裡面,如果沒有把這些必要的類快取在一個檔案裡面,那麼我們每次執行
//都要開啟多個檔案。如果把這些必要的類整理到一個檔案裡面,那麼我們每次執行這些類就在同一個檔案裡面了。例如:Request類、Response類、
//Container類、Kernel類等都會被快取到這個檔案裡面。所以,如果我們想在 Request類 裡面 echo '在Request裡面除錯'; 這樣的語句,我們就把
//這語句編寫在bootstrap.php.cache檔案下的Request類而不是symfony/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Request.php
//裡面的Request類。其實symfony/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Request.php裡面的Request類就被快取到bootstrap.php.cache
//裡了
├── cache //快取目錄,按不同模式(生成模式、除錯模式)快取。主要快取了模板檔案、Container類、路由對映相關資料等
│ ├── dev
│ └── prod
├── check.php
├── config //存放配置檔案的目錄,config_dev.yml和config_prod.yml才是被Symfony2框架載入的配置檔案。但是為了方便管理,我們會把不同模組的配置
//編寫到不同配置檔案中,要使這些配置檔案生效,那麼我們還需要import它們進config_dev.yml和config_prod.yml。
│ ├── config_dev.yml //除錯模式的配置檔案
│ ├── config_prod.yml //生成模式的配置檔案
│ ├── config_test.yml
│ ├── config.yml //通用的配置檔案,只要import進相應的除錯模式下的配置檔案,就可以生效
│ ├── parameters.yml //存放配置檔案使用的變數,例如:資料名、資料庫密碼、資料庫host等等
│ ├── parameters.yml.dist
│ ├── routing_dev.yml //除錯模式下的路由配置檔案,我們在src裡面編寫的路由配置檔案需要import到這個檔案寫才可以生效
│ ├── routing.yml //通用路由配置檔案
│ └── security.yml //防火牆配置檔案,這裡的防火牆是web應用防火牆,不是伺服器的防火牆,裡面配置有角色許可權、ACL等,這個檔案需要config_*.php import進去才可以生效
├── console
├── logs //Symfony2執行的日誌,同理,不同模式下有不同的日誌
│ ├── dev.log
│ └── prod.log
├── phpunit.xml.dist
├── Resources
│ └── views
└── SymfonyRequirements.php
├── AppKernel.php //入口檔案裡面會初始化一個AppKernel類,AppKernel類就是在這個檔案裡面,Appkernel類的主要功能是初始化整個web應用的Bundle。
//包括Symfony2框架的核心Bundle、第三方外掛的Bundle、我們自己編寫的應用的Bundle,Bundle在Symfony2裡面就相當於一個具有完成
//某一功能的完整的包,而且我們要用的Bundle都必須在AppKernel類裡面註冊。
├── autoload.php //該檔案負責自動載入註冊在裡面的類,通常我們不需要手動修改它
├── bootstrap.php.cache //Symfony2核心的類的快取檔案,Symfony2框架必須用到的核心的類都會被編寫整理到這個檔案裡面。這樣做的目的是減少執行的時候開啟
//檔案的個數,提高執行的速度。因為不同的類都被存放在不同的檔案裡面,如果沒有把這些必要的類快取在一個檔案裡面,那麼我們每次執行
//都要開啟多個檔案。如果把這些必要的類整理到一個檔案裡面,那麼我們每次執行這些類就在同一個檔案裡面了。例如:Request類、Response類、
//Container類、Kernel類等都會被快取到這個檔案裡面。所以,如果我們想在 Request類 裡面 echo '在Request裡面除錯'; 這樣的語句,我們就把
//這語句編寫在bootstrap.php.cache檔案下的Request類而不是symfony/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Request.php
//裡面的Request類。其實symfony/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Request.php裡面的Request類就被快取到bootstrap.php.cache
//裡了
├── cache //快取目錄,按不同模式(生成模式、除錯模式)快取。主要快取了模板檔案、Container類、路由對映相關資料等
│ ├── dev
│ └── prod
├── check.php
├── config //存放配置檔案的目錄,config_dev.yml和config_prod.yml才是被Symfony2框架載入的配置檔案。但是為了方便管理,我們會把不同模組的配置
//編寫到不同配置檔案中,要使這些配置檔案生效,那麼我們還需要import它們進config_dev.yml和config_prod.yml。
│ ├── config_dev.yml //除錯模式的配置檔案
│ ├── config_prod.yml //生成模式的配置檔案
│ ├── config_test.yml
│ ├── config.yml //通用的配置檔案,只要import進相應的除錯模式下的配置檔案,就可以生效
│ ├── parameters.yml //存放配置檔案使用的變數,例如:資料名、資料庫密碼、資料庫host等等
│ ├── parameters.yml.dist
│ ├── routing_dev.yml //除錯模式下的路由配置檔案,我們在src裡面編寫的路由配置檔案需要import到這個檔案寫才可以生效
│ ├── routing.yml //通用路由配置檔案
│ └── security.yml //防火牆配置檔案,這裡的防火牆是web應用防火牆,不是伺服器的防火牆,裡面配置有角色許可權、ACL等,這個檔案需要config_*.php import進去才可以生效
├── console
├── logs //Symfony2執行的日誌,同理,不同模式下有不同的日誌
│ ├── dev.log
│ └── prod.log
├── phpunit.xml.dist
├── Resources
│ └── views
└── SymfonyRequirements.php
src下的一個demo的目錄說明:
├── DemoBundle //src目錄下存放的就是我們應用層的程式碼,一個功能就可以組織成一個Bundle,例如簡單一點的一個購物車功能、複雜一點的
//一個部落格系統都可以組織成一個Bundle。
│ ├── AcmeDemoBundle.php //還記得app/AppKernel.php嗎?每一個Bundle要被Symfony2框架載入並起作用,都需要把Bundle註冊到AppKernel類,其實就是
//把這個檔案裡面的Bundle類註冊到AppKernel類,我們可以手動新增到AppKernel類,也可以通過命令列生成一個Bundle的時候
//新增到AppKernel裡面。
│ ├── Command
│ ├── Controller //Controller目錄,顧名思義,這個目錄下存放的就是Controller類,如果不懂什麼是Controller,麻煩請先學習MVC
│ ├── DependencyInjection //該目錄存放對AcmeDemoBundle的擴充套件
│ ├── EventListener //該目錄存放事件監聽器的類,Symfony2框架是一個事件驅動的框架,不同的階段會觸發不同的時間,監聽器只要監聽相應的事件,
//那麼相應事件觸發時,這些監聽器就會被執行。如果剛接觸不是很懂,可以不用太糾結,往後深入會接觸到。
│ ├── Form //該目錄存放著表單類。
│ ├── Resources //該目錄存放著Bundle的配置檔案、模板檔案等
├── config
├── routing.yml //該檔案存放著Bundle的路由配置
└── services.xml //該檔案存放著Bundle的services配置
├── public
└── views //該資料夾存放著Bundle的所有模板檔案
│ ├── Tests
│ └── Twig
//一個部落格系統都可以組織成一個Bundle。
│ ├── AcmeDemoBundle.php //還記得app/AppKernel.php嗎?每一個Bundle要被Symfony2框架載入並起作用,都需要把Bundle註冊到AppKernel類,其實就是
//把這個檔案裡面的Bundle類註冊到AppKernel類,我們可以手動新增到AppKernel類,也可以通過命令列生成一個Bundle的時候
//新增到AppKernel裡面。
│ ├── Command
│ ├── Controller //Controller目錄,顧名思義,這個目錄下存放的就是Controller類,如果不懂什麼是Controller,麻煩請先學習MVC
│ ├── DependencyInjection //該目錄存放對AcmeDemoBundle的擴充套件
│ ├── EventListener //該目錄存放事件監聽器的類,Symfony2框架是一個事件驅動的框架,不同的階段會觸發不同的時間,監聽器只要監聽相應的事件,
//那麼相應事件觸發時,這些監聽器就會被執行。如果剛接觸不是很懂,可以不用太糾結,往後深入會接觸到。
│ ├── Form //該目錄存放著表單類。
│ ├── Resources //該目錄存放著Bundle的配置檔案、模板檔案等
├── config
├── routing.yml //該檔案存放著Bundle的路由配置
└── services.xml //該檔案存放著Bundle的services配置
├── public
└── views //該資料夾存放著Bundle的所有模板檔案
│ ├── Tests
│ └── Twig
相關文章
- 安卓學習筆記---開篇(目錄結構)安卓筆記
- Symfony2 學習筆記之內部構件筆記
- Laravel8學習筆記01 - 目錄結構Laravel筆記
- Symfony2學習筆記之HTTP Cache筆記HTTP
- Symfony2學習筆記之表單筆記
- Symfony2 學習筆記之控制器筆記
- Symfony2 學習筆記之系統路由筆記路由
- Symfony2 學習筆記之服務容器筆記
- Linux 學習筆記--目錄結構及檔案基本操作Linux筆記
- Symfony2學習筆記之資料庫操作筆記資料庫
- Symfony2學習筆記之資料校驗筆記
- Spring學習筆記目錄Spring筆記
- CUDA 學習筆記之gpu結構筆記GPU
- Linux學習(三)之系統目錄結構Linux
- Symfony2 學習筆記之外掛格式筆記
- Linux學習——2 目錄結構Linux
- bootstrap 學習筆記之 文件結構不能變boot筆記
- Jmeter之目錄結構JMeter
- Go 結構 學習筆記Go筆記
- 程式碼目錄結構記錄
- Symfony2學習筆記之事件分配器筆記事件
- [總結]學習目錄
- GO 學習筆記->結構體Go筆記結構體
- 資料結構學習筆記資料結構筆記
- Weblogic安裝實施學習筆記(自總結帶目錄)Web筆記
- 《Linux核心完全註釋》學習筆記:2.7 Linux核心原始碼的目錄結構Linux筆記原始碼
- 檔案和目錄之stat族函式——APUE學習筆記(2)函式筆記
- struct 結構體 -Go 學習記錄Struct結構體Go
- (2)caffe總結之目錄結構
- 【PB案例學習筆記】-02 目錄瀏覽器筆記瀏覽器
- 結構動力學教材-學習筆記筆記
- linux檔案系統的目錄結構筆記Linux筆記
- 記下原來學習Oracle的筆記之——體系結構Oracle筆記
- (一)Linux之目錄結構Linux
- Oracle體系結構學習筆記Oracle筆記
- 資料結構學習筆記--棧資料結構筆記
- 資料結構學習筆記1資料結構筆記
- ASM學習筆記_體系結構ASM筆記