簡介
Laravel 預設的應用程式結構為大型與小型應用程式都提供了良好的起點。 不過你也可以自由地組織應用程式。 Laravel 對類別放置位置幾乎沒有限制,只要 Composer 能自動載入即可。根目錄
當你建立新的 Laravel 專案時,會產生以下目錄結構:app/ 目錄
存放應用程式的核心程式碼。
控制器、模型、中介軟體等應用程式幾乎所有類別都會放在這裡。
預設包含 Http、Models、Providers 子目錄。
透過 Artisan 指令產生類別時,其他子目錄也會自動建立。
bootstrap/ 目錄
包含用來啟動框架的 app.php 檔案。
另外還有 cache/ 子目錄,用來存放路由快取或服務快取等效能最佳化檔案。
config/ 目錄
存放應用程式所有設定檔。
建議閱讀這些檔案以掌握可用選項。
database/ 目錄
存放資料庫的 migration、模型工廠與 seeder。
SQLite 資料庫檔案也可放在此處。
public/ 目錄
包含所有應用程式請求的進入點 index.php。
圖片、JavaScript、CSS 等資產也放在這裡。
resources/ 目錄
存放視圖以及尚未編譯的 CSS、JavaScript 等原始資產。
routes/ 目錄
存放應用程式所有路由定義。
預設包含 web.php 與 console.php 兩個路由檔。
storage/ 目錄
存放框架產生的檔案,例如日誌、已編譯的 Blade 樣板、以檔案為基礎的 session、檔案快取等。
可分為 app/、framework/、logs/ 三個子目錄。
tests/ 目錄
存放自動化測試。
內建以 Pest 或 PHPUnit 撰寫的單元測試與功能測試範本。
vendor/ 目錄
存放 Composer 相依套件。此目錄請勿加入版本控制。
app/ 目錄詳細說明
app 目錄中的許多類別可以透過 Artisan 指令產生。
可用的指令請執行下列指令查詢:
Http/ 目錄
Http/ 目錄
存放控制器、中介軟體、Form Request。
應用程式對請求處理邏輯幾乎都放在此處。
Models/ 目錄
Models/ 目錄
存放所有 Eloquent 模型類別。
每個資料表都會有對應的「模型」,用於查詢與新增資料。
Providers/ 目錄
Providers/ 目錄
存放應用程式所有的服務提供者。
服務提供者會將服務繫結至容器、註冊事件等,執行啟動應用程式所需的動作。
Console/ 目錄
Console/ 目錄
存放所有自訂的 Artisan 指令。
可透過
make:command 指令產生。Exceptions/ 目錄
Exceptions/ 目錄
存放應用程式所有自訂例外。
可透過
make:exception 指令產生。重要檔案
.env 檔案
管理隨環境不同的設定值(資料庫連線資訊、API 金鑰等)。
config/ 內的設定檔會透過 env() 輔助函式引用這些值。
artisan 檔案
Artisan 命令列介面的進入點。
以 php artisan <指令名稱> 形式執行。
下一步
路由
學習如何定義路由,並將 URL 與應用程式邏輯串連。