一個新的工程建立后,默認的目錄結(jié)構(gòu)如下:
Root
--app
-- bootstrap?
-- config?
-- database?
-- public?
-- resources?
-- routes?
-- storage?
-- tests?
--? vendor?
App:整個公司的核心邏輯代碼
Bootstrap: 此目錄中的文件負責(zé)框架的啟動和注冊類的自動加載,此目錄下還有一個cache目錄,用于存放框架生成的路由、服務(wù)緩存文件,用于提升整個項目的運行速度
Config:包含整個項目的可配置內(nèi)容,可以通讀一遍了解
Public:整個應(yīng)用的外部請求入口,同時也可以存放web項目中用到的images,css和js文件
Resources:包含原始的預(yù)處理文件,比如生成css的less或者sass文件,同時也存放應(yīng)用中展示信息的多語種配置文件,用于應(yīng)用的國際化
Routes:大致包含以下幾個文件 - web.php,?api.php,?console.php?and?channels.php
web.php - 路由流程由web中間件控制,邏輯由 RouteServiceProvider 提供,支持session狀態(tài),csrf驗證和cookie加密
api.php -? 路由流程由api中間件控制,邏輯由?RouteServiceProvider 提供,支持接口調(diào)用頻率控制,這部分路由設(shè)計是無會話狀態(tài)的,請求皆由傳入的token驗證合法性
console.php - 命令行路由
channels.php - 注冊所有應(yīng)用級別的事件廣播頻道
Storage:目錄存放了編譯后的blade模板,文件格式的緩存,文件格式存儲的session和其他框架生成的文件
app目錄存放當(dāng)前工程生成的文件
framework存放laravel框架生成的文件和緩存
logs目錄存放當(dāng)前工程的日志文件
特別地:storage/app/public包含了用戶生成的文件,如個人頭像等,這時候就需要在public/storage下生成一個符號鏈接到這個目錄,對應(yīng)的命令是php artisan storage:link
Tests:包含了自動化測試文件,官方示例使用了phpunit
對于App目錄,目錄結(jié)構(gòu)如下:
App
-- Console?
--? Events?
--? Exceptions?
--? Http?
--? Jobs?
--? Listeners?
--? Mail?
--? Notifications?
--? Policies?
--? Providers