簡介
默認(rèn)的 laravel 應(yīng)用目錄結(jié)構(gòu)旨在為大型和小型應(yīng)用提供一個很好的起點。當(dāng)然你可以自主的去管理你的應(yīng)用目錄氢妈。Laravel 并沒有限制類應(yīng)該在哪里被構(gòu)建告希,只要它能被 Composer 自動加載就行姑曙。
根目錄
新安裝的 laravel 應(yīng)用根目錄中包含了各種子目錄:
app
目錄模叙,如你所預(yù)料的那樣,這里包含了應(yīng)用中的核心代碼新啼,我們將很快會探索這個目錄追城。
bootstrap
目錄包含了一些文件去做整個框架的引導(dǎo)啟動和配置自動加載,這個目錄下還包含了為了提高應(yīng)用的啟動性能而自動生成的緩存文件存放的目錄 cache
燥撞。
config
目錄座柱,如同名字所暗示的那樣,這里包含了應(yīng)用中各服務(wù)的配置文件叨吮。
database
目錄包含應(yīng)用中所有的數(shù)據(jù)庫遷移文件和種子文件辆布,如果你需要,你也可以使用這個目錄來存放 SQLite 數(shù)據(jù)庫茶鉴。
public
目錄包含了所有前端控制器和靜態(tài)資源文件锋玲,比如圖片,JavaScript涵叮,CSS,等等惭蹂。
resources
目錄包含了所有的視圖,原始資源文件(LESS,SASS,CoffeeScript)割粮,和本土化文件盾碗。
storage
目錄包含了所有編譯了的 Blade 模板,Session 文件舀瓢,緩存文件和一些框架自動生成的其他文件廷雅。這個目錄下分離出了 app
,framework
和 logs
子目錄。app
目錄可以被用來存儲任意對你應(yīng)用有用的文件。framework
目錄用來存儲由框架生成的文件和緩存航缀。最后商架,logs
目錄包含了應(yīng)用日志文件。
tests
目錄包含了所有自動化測試芥玉。這里已經(jīng)提供了一個基于 PHPUnit 的測試用例蛇摸。
vendor
目錄包含了所有 Composer 依賴
App 目錄
應(yīng)用的正餐都被存放在 app
目錄中。默認(rèn)的灿巧,該目錄使用的是全局命名空間 App
赶袄,并且通過 Composer 執(zhí)行 PSR-4 自動加載規(guī)范進(jìn)行自動加載。
app
目錄下包含多個子目錄抠藕,如 Console
饿肺、Http
、Providers
等幢痘。 Console
和 Http
目錄提供了進(jìn)入應(yīng)用核心的 API唬格。HTTP 協(xié)議和 CLI 是兩種均與應(yīng)用進(jìn)行交互的機(jī)制,但是它們實際上并不包含應(yīng)用邏輯颜说。就是說它們只是簡單的向應(yīng)用發(fā)布命令的兩種方式。Console
目錄包含了所有的 Artisan 命令汰聋,而 Http
目錄包含了應(yīng)用的控制器门粪,中間件和請求。
Events
目錄烹困,如你所料玄妈,這里存儲事件類。事件可以被用來通知應(yīng)用中其他部分給定的行為已經(jīng)發(fā)生髓梅。它提供了靈活性和強(qiáng)大的解耦能力拟蜻。
Exceptions
目錄包含了應(yīng)用中所有的異常通知處理程序,這里是一個處理應(yīng)用異常的好地方枯饿。
Jobs
目錄酝锅,當(dāng)然,這里包含了所有的隊列任務(wù)奢方。應(yīng)用中的任務(wù)可以被隊列化或者也可以在當(dāng)前請求周期內(nèi)同步進(jìn)行搔扁。
listeners
目錄包含了事件的處理器類,處理程序接收一個事件類并在事件觸發(fā)時提供響應(yīng)的邏輯蟋字。例如稿蹲,UserRegistered
事件可以被 SendWelcomeEmail
監(jiān)聽器處理。
Policies
目錄包含了應(yīng)用的授權(quán)策略類鹊奖,策略類主要用來判斷用戶是否可以執(zhí)行對資源的給定動作苛聘。
注意:很多類在
app
目錄中都可以通過 Artisan 命令來生成。你可以在終端中使用php artisan list make
命令查看可用的命令。