Laravel 的目錄結構

根目錄

目錄結構

App目錄

app 目錄包含應用程序的核心代碼。

Bootstrap目錄

bootstrap 目錄包含了一些文件,app.php用于框架的啟動, autoload.php用于自動載入配置, cache 目錄包含用于性能優化的框架生成文件,例如路由和服務緩存文件。

Config目錄

config 目錄包含所有應用程序的配置文件。

Database目錄

database 目錄包含數據庫遷移和種子。包含了以下文件,factories用于存放數據庫模型工廠 , migrations用于存放數據庫遷移文件,seeds用于存放數據填充器。

Public目錄

public 目錄包含應用程序的入口文件 和 應用程序的 CSSJavaScriptimagesindex.php

Resources目錄

resources 目錄包含視圖views 以及您的未編譯資源(如LESSSASSJavaScript)。該目錄還包含所有的語言文件。

Routes目錄

routes 目錄包含應用程序的所有路由定義。包含文件:web.phpapi.phpconsole.phpchannels.php

web.php文件包含 RouteServiceProvider 放置在 Web中間件組 中的路由,它提供會話狀態,CSRF保護和cookie加密。 如果您的應用程序不提供無狀態的RESTful API,則所有路由都將很可能在web.php文件中定義。

api.php 文件包含 RouteServiceProvider 放置在 api中間件組 中的路由,它提供了速率限制。 這些路由是無狀態的,因此通過這些路由進入應用的請求旨在通過令牌進行身份驗證,并且不會訪問會話狀態。

console.php 文件是您可以定義所有基于 Closure 的控制臺命令的地方。 每個Closure綁定到一個命令實例,允許簡單的方法與每個命令的 IO 方法進行交互。 即使此文件未定義HTTP路由,它也將基于控制臺的入口點(路由)定義到應用程序中。

channels.php 文件是您可以注冊您的應用程序支持的所有事件廣播頻道的地方。

Storage目錄

storage 目錄包含編譯的 Blade 模板,基于文件的 session,文件緩存,以及框架生成的其他文件。該目錄分成 app,frameworklogs 目錄。

app 目錄用于存放應用要使用的文件。

framework 目錄用于存放框架生成的文件和緩存。

logs 目錄包含應用的日志文件。

storage/app/public 目錄用于存儲用戶生成的文件。例如可被公開的用戶頭像,要達到被訪問的目的,你還需要在public目錄下生成一個軟連接 storage 指向這個目錄。可以使用 php artisan storage:link

Tests目錄

tests 目錄包含應用程序的自動測試。包含feature 存放自定義功能測試,Unit用于自定義單元測試 ,TestCase.php 測試類的基類。一個開箱即用的 PHPUnit 示例。每個測試類應該用 Test 后綴。您可以使用 phpunitphp vendor/bin/phpunit 命令運行測試。

Vendor目錄

vendor 目錄包含應用程序的 Composer 依賴項。

根目錄下的文件

.env 文件為應用程序的全局環境配置文件

.gitattributes 指定非文本文件的對比合并方式

.gitignore 忽略提交的文件或目錄

artisan Artisan 控制臺

composer.json Composer 依賴文件

composer.lock Composer 標準包鎖定文件

package.json 腳本依賴文件

phpunit.xml phpunit 測試設定文件

readme.md 關于應用程序的介紹

server.php 測試服務文件

webpack.mix.js 資源編譯文件

App目錄

app 目錄為應用程序的核心。

Console 目錄包含應用程序所有自定義的 Artisan 命令。 這些命令可以使用 make:command 命令生成。此目錄還包含 Console Kernel 類,在這里可以注冊自定義的 Artisan 命令以及定義調度任務

Http 目錄包含 HTTP傳輸層 相關目錄,如 Controllers 控制器目錄,Middleware 中間件目錄 ,Kernel.php 包含http中間件和路由中間件的內核文件

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

Events 目錄默認不存在,但是可以用 event:generatemake:event Artisan 命令生成。該目錄包含 事件類 。事件類用于告知應用其他部分某個事件發生并提供靈活的、解耦的處理機制。

Exceptions 目錄包含應用程序的異常處理。也是應用程序拋出任何一場的地方。如果要自定義異常如何記錄異常或渲染,應該修改此目錄的 Handler 類。

Jobs目錄默認不存在,但是可以用 make:job Artisan 命令生成。job 目錄用于存放 隊列任務。應用中的任務可以被推送到隊列,也可以在當前請求生命周期內同步執行。同步執行的任務有時也被看作 命令 ,因為它們實現了命令模式

Listeners 目錄默認不存在,但是可以用 event:generatemake:listener Artisan 命令生成。該目錄包含處理事件的類 (事件監聽器)。事件監聽器接收一個事件并提供對該事件發生后的響應邏輯。 例如 , UserRegistered 事件可以被 SendWelcomeEmail 監聽器處理。

Mail目錄默認不存在,但是可以用 make:mail Artisan 命令生成。Mail 目錄包含郵件發送類郵件對象允許你在一個地方封裝構建郵件所需的所有業務邏輯,然后使用 Mail::send 方法發送郵件。

Notifications目錄默認不存在,但是可以用 make:notification Artisan 命令生成。Notifications 目錄包含應用發送的所有通知,比如事件發生通知。Laravel 的通知功能將通知發送和通知驅動解耦,你可以通過郵件,也可以通過Slack、短信或者數據庫發送通知。

Policies目錄默認不存在,但是可以用 make:policy Artisan 命令生成。 Policies 目錄包含了所有的授權策略類。策略用于判斷某個用戶是否有權限去訪問指定資源。更多信息請查看 授權文檔

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 原文 http://laravelacademy.org/post/5762.html 1、根目錄App目錄app...
    m23100閱讀 879評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,846評論 25 708
  • 浮生一場夢閱讀 270評論 0 0
  • 書名:《島上書店 》 作者: [美] 加布瑞埃拉·澤文 推薦: ★★★★★ 1書籍簡介 每個人的生命中,都有最艱難...
    第十頁閱讀 351評論 0 1