根目錄
App目錄
app
目錄包含應用程序的核心代碼。
Bootstrap目錄
bootstrap
目錄包含了一些文件,app.php
用于框架的啟動, autoload.php
用于自動載入配置, cache
目錄包含用于性能優化的框架生成文件,例如路由和服務緩存文件。
Config目錄
config
目錄包含所有應用程序的配置文件。
Database目錄
database
目錄包含數據庫遷移和種子。包含了以下文件,factories
用于存放數據庫模型工廠 , migrations
用于存放數據庫遷移文件,seeds
用于存放數據填充器。
Public目錄
public
目錄包含應用程序的入口文件 和 應用程序的 CSS
、 JavaScript
、images
、 index.php
。
Resources目錄
resources
目錄包含視圖views
以及您的未編譯資源(如LESS
,SASS
或JavaScript
)。該目錄還包含所有的語言文件。
Routes目錄
routes
目錄包含應用程序的所有路由定義。包含文件:web.php
、 api.php
、console.php
、channels.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
,framework
和 logs
目錄。
app
目錄用于存放應用要使用的文件。
framework
目錄用于存放框架生成的文件和緩存。
logs
目錄包含應用的日志文件。
storage/app/public
目錄用于存儲用戶生成的文件。例如可被公開的用戶頭像,要達到被訪問的目的,你還需要在public目錄下生成一個軟連接 storage 指向這個目錄。可以使用 php artisan storage:link
Tests目錄
tests
目錄包含應用程序的自動測試。包含feature
存放自定義功能測試,Unit
用于自定義單元測試 ,TestCase.php
測試類的基類。一個開箱即用的 PHPUnit
示例。每個測試類應該用 Test
后綴。您可以使用 phpunit
或 php 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:generate
和 make:event
Artisan 命令生成。該目錄包含 事件類 。事件類用于告知應用其他部分某個事件發生并提供靈活的、解耦的處理機制。
Exceptions
目錄包含應用程序的異常處理
。也是應用程序拋出任何一場的地方。如果要自定義異常如何記錄異常或渲染,應該修改此目錄的 Handler
類。
Jobs
目錄默認不存在,但是可以用 make:job
Artisan 命令生成。job
目錄用于存放 隊列任務。應用中的任務可以被推送到隊列,也可以在當前請求生命周期內同步執行。同步執行的任務有時也被看作 命令
,因為它們實現了命令模式。
Listeners
目錄默認不存在,但是可以用 event:generate
和 make:listener
Artisan 命令生成。該目錄包含處理事件的類 (事件監聽器)。事件監聽器接收一個事件并提供對該事件發生后的響應邏輯。 例如 , UserRegistered
事件可以被 SendWelcomeEmail
監聽器處理。
Mail
目錄默認不存在,但是可以用 make:mail
Artisan 命令生成。Mail
目錄包含郵件發送類郵件對象允許你在一個地方封裝構建郵件所需的所有業務邏輯,然后使用 Mail::send
方法發送郵件。
Notifications
目錄默認不存在,但是可以用 make:notification
Artisan 命令生成。Notifications
目錄包含應用發送的所有通知,比如事件發生通知。Laravel 的通知功能將通知發送和通知驅動解耦,你可以通過郵件,也可以通過Slack、短信或者數據庫發送通知。
Policies
目錄默認不存在,但是可以用 make:policy
Artisan 命令生成。 Policies
目錄包含了所有的授權策略類。策略用于判斷某個用戶是否有權限去訪問指定資源。更多信息請查看 授權文檔。