laravel框架的目錄結構介紹

laravel框架的目錄結構介紹

1. 根目錄介紹

  • 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。
    (1):web.php 文件包含的路由都會應用web中間件組,具備Session、CSRF防護以及Cookie加密功能,如果應用無需提供無狀態的、RESTful風格的API,所有路由都會定義在web.php文件。
    (2):api.php 文件包含的路由應用了api中間件組,具備頻率限制功能,這些路由是無狀態的,所以請求通過這些路由進入應用需要通過token進行認證並且不能訪問Session狀態。
    (3):console.php 文件用於定義所有基於閉包的控制檯命令,每個閉包都被綁定到一個控制檯命令並且允許與命令行IO方法進行交互,儘管這個文件並不定義HTTP路由,但是它定義了基於控制檯的應用入口(路由)。
  • Storage目錄
    (1):storage 目錄包含了編譯過的Blade模板、基於文件的session、文件緩存,以及其它由框架生成的文件,該目錄被細分爲成app、framework和logs子目錄,app目錄用於存放應用要使用的文件,framework目錄用於存放框架生成的文件和緩存,最後,logs目錄包含應用的日誌文件;
    (2):storage/app/public 目錄用於存儲用戶生成的文件,比如可以被公開訪問的用戶頭像,要達到被訪問的目的,你還需要在public目錄下生成一個軟連接 storage 指向這個目錄。你可以通過 php artisan storage:link 命令生成這個軟鏈接。
  • Tests目錄:tests 目錄包含自動化測試,其中已經提供了一個開箱即用的PHPUnit示例;每一個測試類都要以 Test 開頭,你可以通過 phpunit 或 php vendor/bin/phpunit 命令來運行測試。
  • Vendor目錄:vendor目錄包含所有Composer依賴。

2. App目錄介紹

應用的核心代碼位於 app 目錄下,默認情況下,該目錄位於命名空間 App 下, 並且被 Composer 通過 PSR-4自動載入標準 自動加載。
app 目錄下包含多個子目錄,如Console、Http、Providers等。Console和Http目錄提供了進入應用核心的API,HTTP協議和CLI是和應用進行交互的兩種機制,但實際上並不包含應用邏輯。換句話說,它們只是兩個嚮應用發佈命令的方式。Console目錄包含了所有的Artisan命令,Http目錄包含了控制器、中間件和請求等。

  • 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
    目錄包含應用的所有服務提供者。服務提供者在啓動應用過程中綁定服務到容器、註冊事件以及執行其他任務以爲即將到來的請求處理做準備。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章