鍍金池/ 教程/ PHP/ 應(yīng)用目錄結(jié)構(gòu)
門面
Laravel Homestead
安裝及配置
測(cè)試
HTTP 中間件
加密
升級(jí)指南
幫助函數(shù)
應(yīng)用目錄結(jié)構(gòu)
集合
新手入門指南-簡(jiǎn)單任務(wù)管理系統(tǒng)
任務(wù)調(diào)度
查詢構(gòu)建器
視圖
驗(yàn)證
Laravel Cashier(訂購(gòu)&支付&發(fā)票)
本地化
隊(duì)列
調(diào)整器
分頁(yè)
文件系統(tǒng)/云存儲(chǔ)
貢獻(xiàn)代碼
哈希
HTTP 控制器
緩存
遷移
HTTP 請(qǐng)求
Laravel Elixir
發(fā)行版本說(shuō)明
Envoy 任務(wù)運(yùn)行器(SSH任務(wù))
序列化
Session
起步
帶用戶功能的任務(wù)管理系統(tǒng)
起步
用戶授權(quán)
郵件
事件
填充數(shù)據(jù)
HTTP 路由
服務(wù)提供者
Blade 模板引擎
包開(kāi)發(fā)
用戶認(rèn)證
Artisan 控制臺(tái)
HTTP 響應(yīng)
集合
服務(wù)容器
關(guān)聯(lián)關(guān)系
一次請(qǐng)求的生命周期
契約
Redis
錯(cuò)誤&日志

應(yīng)用目錄結(jié)構(gòu)

1、簡(jiǎn)介

Laravel 應(yīng)用默認(rèn)的目錄結(jié)構(gòu)試圖為不管是大型應(yīng)用還是小型應(yīng)用提供一個(gè)好的起點(diǎn),當(dāng)然,你可以自己按照喜好重新組織應(yīng)用目錄結(jié)構(gòu),Laravel 對(duì)類在何處被加載沒(méi)有任何限制——只要 Composer 可以自動(dòng)載入它們即可。

2、根目錄

新安裝的 Laravel 應(yīng)用包含許多文件夾:

  • app 目錄包含了應(yīng)用的核心代碼;
  • bootstrap目錄包含了少許文件用于框架的啟動(dòng)和自動(dòng)載入配置,還有一個(gè) cache 文件夾用于包含框架生成的啟動(dòng)文件以提高性能;
  • config目錄包含了應(yīng)用所有的配置文件;
  • database目錄包含了數(shù)據(jù)遷移及填充文件,如果你喜歡的話還可以將其作為 SQLite 數(shù)據(jù)庫(kù)存放目錄;
  • public目錄包含了前端控制器和資源文件(圖片、js、css 等);
  • resources 目錄包含了視圖文件及原生資源文件(LESS、SASS、CoffeeScript),以及本地化文件;
  • storage 目錄包含了編譯過(guò)的 Blade 模板、基于文件的 session、文件緩存,以及其它由框架生成的文件,該文件夾被隔離成app、frameworklogs目錄,app 目錄用于存放應(yīng)用要使用的文件,framework 目錄用于存放框架生成的文件和緩存,最后,logs 目錄包含應(yīng)用的日志文件;
  • tests 目錄包含自動(dòng)化測(cè)試,其中已經(jīng)提供了一個(gè)開(kāi)箱即用的 PHPUnit 示例;
  • vendor目錄包含 Composer 依賴;

3、App 目錄

應(yīng)用的核心代碼位于app 目錄下,默認(rèn)情況下,該目錄位于命名空間 App 下, 并且被 Composer 通過(guò) PSR-4 自動(dòng)載入標(biāo)準(zhǔn)自動(dòng)加載。你可以通過(guò) Artisan 命令 app:name 來(lái)修改該命名空間。

app 目錄下包含多個(gè)子目錄,如 ConsoleHttp、Providers 等。

ConsoleHttp 目錄提供了進(jìn)入應(yīng)用核心的 API,HTTP 協(xié)議和 CLI 是和應(yīng)用進(jìn)行交互的兩種機(jī)制,但實(shí)際上并不包含應(yīng)用邏輯。換句話說(shuō),它們只是兩個(gè)向應(yīng)用發(fā)布命令的方式。Console 目錄包含了所有的 Artisan 命令,Http 目錄包含了控制器、過(guò)濾器和請(qǐng)求等。

Jobs 目錄是放置隊(duì)列任務(wù)的地方,應(yīng)用中的任務(wù)可以被隊(duì)列化,也可以在當(dāng)前請(qǐng)求生命周期內(nèi)同步執(zhí)行。

Events 目錄是放置事件類的地方,事件可以用于通知應(yīng)用其它部分給定的動(dòng)作已經(jīng)發(fā)生,并提供靈活的解耦的處理。

Listeners 目錄包含事件的處理器類,處理器接收一個(gè)事件并提供對(duì)該事件發(fā)生后的響應(yīng)邏輯,比如,UserRegistered事件可以被SendWelcomeEmail 監(jiān)聽(tīng)器處理。

Exceptions 目錄包含應(yīng)用的異常處理器,同時(shí)還是處理應(yīng)用拋出的任何異常的好地方。

注意:app目錄中的很多類都可以通過(guò) Artisan 命令生成,要查看所有有效的命令,可以在終端中運(yùn)行 php artisan list make 命令。

4、設(shè)置應(yīng)用的命令空間

上面已經(jīng)討論過(guò),應(yīng)用默認(rèn)的命名空間是 App;當(dāng)然你可以修改該命名空間以匹配應(yīng)用的名字,修改命名空間可以通過(guò) app:name 命令來(lái)實(shí)現(xiàn)。比如,如果你的應(yīng)用取名叫”SocialNet“,那么可以運(yùn)行如下命令:

php artisan app:name SocialNet

當(dāng)然,你也可以繼續(xù)使用App 命名空間不做修改。