架構 ―― 應用目錄結構

2018-02-24 15:38 更新

架構 —— 應用目錄結構

1、簡介

Laravel應用默認的目錄結構試圖為不管是大型應用還是小型應用提供一個好的起點,當然,你可以自己按照喜好重新組織應用目錄結構,Laravel對類在何處被加載沒有任何限制——只要Composer可以自動載入它們即可。

2、根目錄

新安裝的Laravel應用包含許多文件夾:

app目錄包含了應用的核心代碼;

bootstrap目錄包含了少許文件用于框架的啟動和自動載入配置,還有一個cache文件夾用于包含框架生成的啟動文件以提高性能;

config目錄包含了應用所有的配置文件;

database目錄包含了數(shù)據(jù)遷移及填充文件,如果你喜歡的話還可以將其作為SQLite數(shù)據(jù)庫存放目錄;

public目錄包含了前端控制器和資源文件(圖片、js、css等);

resources目錄包含了視圖文件及原生資源文件(LESS、SASS、CoffeeScript),以及本地化文件;

storage目錄包含了編譯過的Blade模板、基于文件的session、文件緩存,以及其它由框架生成的文件,該文件夾被隔離成app、frameworklogs目錄,app目錄用于存放應用要使用的文件,framework目錄用于存放框架生成的文件和緩存,最后,logs目錄包含應用的日志文件;

tests目錄包含自動化測試,其中已經提供了一個開箱即用的PHPUnit示例;

vendor目錄包含Composer依賴;

3、App目錄

應用的核心代碼位于app目錄下,默認情況下,該目錄位于命名空間App下, ?并且被Composer通過PSR-4自動載入標準自動加載。你可以通過Artisan命令app:name來修改該命名空間。

app目錄下包含多個子目錄,如Console、Http、Providers等。ConsoleHttp目錄提供了進入應用核心的API,HTTP協(xié)議和CLI是和應用進行交互的兩種機制,但實際上并不包含應用邏輯。換句話說,它們只是兩個向應用發(fā)布命令的方式。Console目錄包含了所有的Artisan命令,Http目錄包含了控制器、過濾器和請求等。

Jobs目錄是放置隊列任務的地方,應用中的任務可以被隊列化,也可以在當前請求生命周期內同步執(zhí)行。

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

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

Exceptions目錄包含應用的異常處理器,同時還是處理應用拋出的任何異常的好地方。

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

4、設置應用的命令空間

上面已經討論過,應用默認的命名空間是App;當然你可以修改該命名空間以匹配應用的名字,修改命名空間可以通過app:name命令來實現(xiàn)。比如,如果你的應用取名叫”SocialNet“,那么可以運行如下命令:

php artisan app:name SocialNet

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

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號