1.簡介
Laravel(本版本為5.4)作為一款開發框架自然和其他框架一樣有自己的目錄結構。並且Laravel的框架目錄布置的尤其清晰,適用於各種類型的項目開發。我們要學習一個框架,最基本的肯定是要了解他的原理以及目錄結構,知道MVC層各在什么地方,資源在什么地方,基層類在哪里,包括擴展等等。。。,接下來我們就來說一說這個目錄結構的問題。
2.根目錄
app存放着應用的核心代碼,包括我們熟知的MVC模式的M層和C層。
Console目錄包含了Laravel所使用的所有Artisan命令,不熟悉Artisan的同學可以點擊進行了解一下。app目錄中的很多類都可以通過在終端使用命令直接生成包括我們熟悉的控制器和model類。
Events目錄是放置事件類的地方,事件可以用於通知應用其他部分給定的動作已經發生,並且進行靈活的解耦處理。至於這個解耦我們在這暫時不提,你可以把它理解為一個紐帶聯系着但又不是很直接的把事件綁定在一起了。
Exception目錄包含應用的異常處理器,同事還可以處理應用拋出的異常。
Http目錄是重點目錄,包含了控制器,過濾器和請求等。以及中間件Middleware和路由文件route.php。這里面的控制器和中間件包括model類都可以通過上面的artisan命令直接生成。
Jobs目錄是放置隊列任務的地方,應用中的任務可以被隊列化,也可以在當前請求生命周期中同步執行。
Listeners目錄包含事件的處理器類,處理器接收一個事件並且提供對該事件發生后的邏輯。
Policies目錄存放一個git處理文件。
Providers目錄包含一些空的處理。
route.php路由文件,請求通過路由調用中間件等經過M層傳遞到C層。
bootstrap目錄包含了少許文件用於框架的啟動和自動載入配置,還有一個cache文件夾用於包含框架生成的啟動文件以提高性能;Laravel中的cache緩存機制特別厲害,可以對求求過得控制器都可以進行緩存。
config目錄存放着框架中一系列配置文件,包括數據庫(databases.php等),在這里要說明的是不要在這個databases.php文件中配置你的數據庫信息,因為現在很多人會把自己的作品放在git上面共享。如果你在這個文件中配置數據庫信息就可能會造成信息泄露或者被無聊的人當做攻擊數據庫的工具。laravel根目錄中有個.env文件。你可以在這里進行數據庫配置,當你上傳git的時候會把這個文件過濾掉。git默認不顯示該文件的。有效的保護了用戶的信心安全。
public目錄存放着框架的入口文件index.php以及存放一些資源等,比如說js,css,圖片或者視頻等。在這里提一下加入你沒有對配置文件進行修改的話或者沒有修改根目錄下的server.php的時候你的項目的根目錄記得要配置到public目錄下。
resouces目錄存放項目的前端頁面,位置就在resources下面的views下,也就是MVC的V層。
storage目錄包含了編譯過的Blade模板、基於文件的session、文件緩存,以及其它由框架生成的文件,該文件夾被隔離成app、framework和logs目錄,app
目錄用於存放應用要使用的文件,framework目錄用於存放框架生成的文件和緩存,最后,logs目錄包含應用的日志文件;
tests目錄包含了自動化測試,其中包含了一個可立即使用的PHPUntil實例。
Vendor目錄是非常重要的一個目錄,包含了Composer的依賴,也就是一些擴展以及框架的核心類的內容都在這里。