Skip to main content

簡介

Laravel 預設的應用程式結構為大型與小型應用程式都提供了良好的起點。 不過你也可以自由地組織應用程式。 Laravel 對類別放置位置幾乎沒有限制,只要 Composer 能自動載入即可。

根目錄

當你建立新的 Laravel 專案時,會產生以下目錄結構:

app/ 目錄

存放應用程式的核心程式碼。 控制器、模型、中介軟體等應用程式幾乎所有類別都會放在這裡。 預設包含 HttpModelsProviders 子目錄。 透過 Artisan 指令產生類別時,其他子目錄也會自動建立。

bootstrap/ 目錄

包含用來啟動框架的 app.php 檔案。 另外還有 cache/ 子目錄,用來存放路由快取或服務快取等效能最佳化檔案。

config/ 目錄

存放應用程式所有設定檔。 建議閱讀這些檔案以掌握可用選項。

database/ 目錄

存放資料庫的 migration、模型工廠與 seeder。 SQLite 資料庫檔案也可放在此處。

public/ 目錄

包含所有應用程式請求的進入點 index.php。 圖片、JavaScript、CSS 等資產也放在這裡。
Web 伺服器的 document root 請指到 Laravel 專案的 public/ 目錄。 若把專案根目錄或子目錄直接對外公開,可能導致機密檔案外洩。

resources/ 目錄

存放視圖以及尚未編譯的 CSS、JavaScript 等原始資產。

routes/ 目錄

存放應用程式所有路由定義。 預設包含 web.phpconsole.php 兩個路由檔。

storage/ 目錄

存放框架產生的檔案,例如日誌、已編譯的 Blade 樣板、以檔案為基礎的 session、檔案快取等。 可分為 app/framework/logs/ 三個子目錄。

tests/ 目錄

存放自動化測試。 內建以 PestPHPUnit 撰寫的單元測試與功能測試範本。

vendor/ 目錄

存放 Composer 相依套件。此目錄請勿加入版本控制。

app/ 目錄詳細說明

app 目錄中的許多類別可以透過 Artisan 指令產生。 可用的指令請執行下列指令查詢:
存放控制器、中介軟體、Form Request。 應用程式對請求處理邏輯幾乎都放在此處。
存放所有 Eloquent 模型類別。 每個資料表都會有對應的「模型」,用於查詢與新增資料。
存放應用程式所有的服務提供者。 服務提供者會將服務繫結至容器、註冊事件等,執行啟動應用程式所需的動作。
存放所有自訂的 Artisan 指令。 可透過 make:command 指令產生。
存放應用程式所有自訂例外。 可透過 make:exception 指令產生。

重要檔案

.env 檔案

管理隨環境不同的設定值(資料庫連線資訊、API 金鑰等)。 config/ 內的設定檔會透過 env() 輔助函式引用這些值。

artisan 檔案

Artisan 命令列介面的進入點。 以 php artisan <指令名稱> 形式執行。

下一步

路由

學習如何定義路由,並將 URL 與應用程式邏輯串連。
最後修改於 2026年8月2日