當使用VS Code開啟Laravel的專案時,會看到Laravel的文件夾、檔案好多好複雜,就開始覺得頭昏眼花、噁心想吐了
- app目錄:包含了整個網站大多數的核心程式
以下為預設出現的資料夾與檔案
- Console:含所有自定義的Artisan指令與控制台內核(Kernel.php)。指令可透過make:command來生成,而Kernel.php可用來註冊自定義的Artisan指令與任務排程。
- Exceptions:含此App的例外處理程序,可在Handler.php自定義例外處理的方式。
- Http:含控制器(Controller)、中介層(Middleware)和表單請求,此App的所有的請求處理都放在此資料夾底下。
- Providers:含此App所有的服務提供器。
- bootstrap:進行laravel的初始化,載入相關程式
- cache:含一些框架對啟動效能最佳化所產生的檔案。
- config:裡面放著各式各樣的設定檔,包含app, database,還有像是session, cache, mail等等的設定
- database:裡面主要包含3個部分
- Migration:用於建立資料表,並記錄每一次資料表的更新,讓資料庫也可以進行版本控制。
- Seed:含設定自動填入資料庫的資料(假資料)產生的檔案,可以呼叫Factory來大量產生。
- Factory:負責如何產生假資料的邏輯,然後給Seed使用
-
public:專門放公開的檔案
-
resources:最主要就是包含了View,也就是網頁的前端。其他還有網頁語言檔(可以讓網站顯示不一樣的語言),以及還沒有被編譯的資源(e.g LESS, SASS...)
-
routes:就像網路的路由器一樣,裡面有好多路由器,去處理使用者存取網站的要求
- api.php:包含RouteServiceProvider,因為路由是無狀態的,所以在這些api路由通過App請求時需進行身份認證,提供頻率限制。
- channels.php:註冊App支持的所有事件推播器。
- console.php:定義基於閉包(closure)的控制台命令。
- web.php:除了無狀態的路由,幾乎此App所有的路由都在這邊定義,包含RouteServiceProvider,提供web之間的對話狀態、CSRF防護和cookie加密。
- storage:包含編譯過後的Blade templates, 檔案式的session, cache以及log紀錄等各式各樣laravel自己產生的檔案。
- app:存放此App使用的任何檔案。
- framework:存放儲存框架產生的檔案與快取。
- logs:存放此App的日誌檔案。
-
tests:用來放自動化測試的程式
-
vendor:從composer安裝的套件,都會在vendor裡面。
以上就是今天的內容