Laravel學習路線【1】基礎目錄認識

攻城獅丶發表於2017-09-06

根目錄

App目錄

app 目錄包含了應用的核心程式碼,此外你為應用編寫的程式碼絕大多數也會放到這裡;

Bootstrap目錄

bootstrap目錄包含了少許檔案,用於框架的啟動和自動載入配置,還有一個 cache 資料夾用於包含框架為提升效能所生成的檔案,如路由和服務快取檔案;

Config目錄

config 目錄包含了應用所有的配置檔案,建議通讀一遍這些配置檔案以便熟悉所有配置項;

Database目錄

database 目錄包含了資料遷移及填充檔案,如果你喜歡的話還可以將其作為 SQLite 資料庫存放目錄;

Public目錄

public 目錄包含了入口檔案 index.php 和前端資原始檔(圖片、JavaScript、CSS等);

Resources目錄

resources 目錄包含了檢視檔案及原生資原始檔(LESS、SASS、CoffeeScript),以及本地化語言檔案;

Routes目錄

routes 目錄包含了應用的所有路由定義。Laravel預設提供了三個路由檔案 web.php 、api.php和console.php。

web.php 檔案包含的路由都會應用web中介軟體組,具備Session、CSRF防護以及Cookie加密功能,如果應用無需提供無狀態的、RESTful風格的API,所有路由都會定義在web.php檔案。

api.php 檔案包含的路由應用了api中介軟體組,具備頻率限制功能,這些路由是無狀態的,所以請求通過這些路由進入應用需要通過token進行認證並且不能訪問Session狀態。

console.php 檔案用於定義所有基於閉包的控制檯命令,每個閉包都被繫結到一個控制檯命令並且允許與命令列IO方法進行互動,儘管這個檔案並不定義HTTP路由,但是它定義了基於控制檯的應用入口(路由)。

Storage目錄

storage 目錄包含了編譯過的Blade模板、基於檔案的session、檔案快取,以及其它由框架生成的檔案,該目錄被細分為成app 、framework和logs子目錄,app目錄用於存放應用要使用的檔案,framework目錄用於存放框架生成的檔案和快取,最後,logs目錄包含應用的日誌檔案;

storage/app/public 目錄用於儲存使用者生成的檔案,比如可以被公開訪問的使用者頭像,要達到被訪問的目的,你還需要在public目錄下生成一個軟連線storage 指向這個目錄。你可以通過 php artisan storage:link命令生成這個軟連結。

Tests目錄

tests 目錄包含自動化測試,其中已經提供了一個開箱即用的PHPUnit示例;每一個測試類都要以 Test 開頭,你可以通過 phpunit 或 php vendor/bin/phpunit 命令來執行測試。

Vendor目錄

vendor目錄包含所有Composer依賴。

App目錄
應用的核心程式碼位於 app 目錄下,預設情況下,該目錄位於名稱空間 App 下, 並且被 Composer 通過 PSR-4自動載入標準 自動載入。

app 目錄下包含多個子目錄,如Console、Http、Providers等。Console和Http目錄提供了進入應用核心的API,HTTP協議和CLI是和應用進行互動的兩種機制,但實際上並不包含應用邏輯。換句話說,它們只是兩個嚮應用釋出命令的方式。Console目錄包含了所有的Artisan命令,Http目錄包含了控制器、中介軟體和請求等。

其他目錄會在你通過 Artisan 命令 make 生成相應類的時候生成到 app 目錄下。例如,app/Jobs 目錄直到你執行 make:job 命令生成任務類時才會出現在 app 目錄下。

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

Console 目錄包含應用所有自定義的 Artisan 命令,這些命令類可以使用 make:command 命令生成。該目錄下還有 Console Kernel 類,在這裡可以註冊自定義的 Artisan 命令以及定義排程任務。

Events目錄

這個目錄預設不存在,但是可以通過 event:generate 和 make:event 命令建立。該目錄用於存放事件類。事件類用於告知應用其他部分某個事件發生並提供靈活的、解耦的處理機制。

Exceptions目錄

Exceptions 目錄包含應用的異常處理器,同時還是處理應用丟擲的任何異常的好地方。如果你想要自定義異常如何記錄異常或渲染,需要修改 Handler 類。

Http目錄

Http 目錄包含了控制器、中介軟體以及表單請求等,幾乎所有進入應用的請求處理都在這裡進行。

Jobs目錄

該目錄預設不存在,可以通過執行 make:job 命令生成,Jobs目錄用於存放佇列任務,應用中的任務可以被推送到佇列,也可以在當前請求生命週期內同步執行。同步執行的任務有時也被看作命令,因為它們實現了命令模式。

Listeners目錄

這個目錄預設不存在,可以通過執行 event:generate 和 make:listener 命令建立。Listeners 目錄包含處理事件的類(事件監聽器),事件監聽器接收一個事件並提供對該事件發生後的響應邏輯,例如,UserRegistered 事件可以被 SendWelcomeEmail 監聽器處理。

Mail目錄

這個目錄預設不存在,但是可以通過執行 make:mail 命令生成,Mail 目錄包含郵件傳送類,郵件物件允許你在一個地方封裝構建郵件所需的所有業務邏輯,然後使用 Mail::send 方法傳送郵件。

Notifications目錄

這個目錄預設不存在,你可以通過執行 make:notification 命令建立, Notifications 目錄包含應用傳送的所有通知,比如事件發生通知。Laravel 的通知功能將通知傳送和通知驅動解耦,你可以通過郵件,也可以通過Slack、簡訊或者資料庫傳送通知。

Policies目錄

這個目錄預設不存在,你可以通過執行 make:policy 命令來建立, Policies 目錄包含了所有的授權策略類,策略用於判斷某個使用者是否有許可權去訪問指定資源。更多詳情,請檢視授權文件。

Providers目錄

Providers 目錄包含應用的所有服務提供者。服務提供者在啟動應用過程中繫結服務到容器、註冊事件以及執行其他任務以為即將到來的請求處理做準備。

在新安裝的 Laravel 應用中,該目錄已經包含了一些服務提供者,你可以按需新增自己的服務提供者到該目錄。

【大部分從文件拿過來~方便自己檢視,後期更新自己學習的東西,多多包涵】


相關文章