我想應該不少人跟Aidec一樣,剛接觸到laravel時,完全被它的框架目錄結構驚呆了,才剛裝好laravel竟然就有如此多的檔案與目錄。
對於初學者來說,會根本不知道該從何下手。接著下來就一一講解各個目錄與檔案的用途吧~
假如尚未安裝Laravel 可以參閱此篇:
Laravel 目錄結構
剛安裝好Laravel的檔案目錄結構大概長下圖這樣。不同的版本檔案結構可能會有些差異。但基本上不會相差太多。
laravel 之所以檔案目錄結構會比其它框架分的細的原因,在於它已經將一般大家開發上常用的目錄先分類好了。
為的是避免不同的人有不同的開發習慣,把相似的東西放到不同的目錄去,造成結構混亂。
所以 laravel 先預設好目錄,制定一個統一標準,給予系統一個良好的結構。當然,目錄結構也是可以開發者的喜好去調整的。
laravel 目錄結構簡介
目錄
目錄 | 說明 |
app | [重要] 整個專案的程式都會放在這裡。 |
bootstrap | 放置初始化框架的啟用程式,包含驅動框架、自動載入配置檔 。還有一個 cache 資料夾,是用來放置加快框架啟用的快取文件 |
config | 用來放置框架與其它服務的設定檔。(例如:專案的應用設定、session、資料庫、快取設定) |
database | 資料庫相關 |
public | 網站的進入點目錄,public/index.php 為整個專案入口點。 一般MVC框架會以根目錄index.php為網站進入點,但laravel為保護應用不被直接存取,所以建議將網站的根目錄指向public。 靜態資源(css、js、image)放置在這裡。 |
resources | 放置views(視圖) 、 lang(語系檔) 、 asset (原始資源檔:例如未編譯的檔案,less、sass...) |
routes | 路由目錄。網站路由規則配置。 |
storage | 包含編譯後的 Blade 模板,檔案的 session、檔案快取和其他框架產生的檔案。這邊的檔案大多是系統自動產生的。 |
tests | 放置自動化測試相關檔案。 |
vendor | 透過composer安裝的模組都放在此處。裡面有內建一些相依套件。 |
檔案
檔案 | 說明 |
.env | [重要] 環境配置文件。可以把它當作是頂級的config配置檔。 在config 目錄裡許多配置都會使用到此文件的參數。 |
.env.example | 空白的.env 文件。如果安裝時沒有自動產生 .env ,可以複製此文件,手動產生 .env 文件。 |
.gitattributes | git 文件 |
.gitignore | git 文件 |
.htaccess | apache 配置檔。預設是沒有這個文件的。 |
artisan | laravel 內建的cli命令列工具。可以透過指令,來加速專案開發的速度。 |
composer.json | composer 文件 |
composer.lock | composer 文件 |
package.json | gulp 文件 |
phpunit.xml | phpunit 文件 |
readme.md | laravel 簡介 (markdown格式) |
server.php | 使用php 內建的web server 會以此文件作為進入點。在正式環境基本上用不到。 |
webpack.mix.js | laravel webpack 配置文件 |
App目錄
目錄 | 說明 |
Console | 自定義的artisan指令放在這邊。 |
Exceptions | 自定義錯誤、例外類 |
Http | 應用程式的控制器、請求、中介層。程式的應用邏輯寫在這裡。 |
Providers | 應用的服務提供器。 至於服務提供器是什麼,之後章節再介紹。 |
User.php | 內建的模型實例,我們新建的Model預設也儲存在此目錄 |
未完待續~
文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)
原文連結:
https://blog.aidec.tw/post/laravel-dir
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記