對(duì)于使用 PHP 的開發(fā)者來說,項(xiàng)目目錄結(jié)構(gòu)是非常重要的。一個(gè)合理的 PHP 項(xiàng)目目錄結(jié)構(gòu)有助于你更好地組織你的代碼,并提高代碼的可讀性和可維護(hù)性。
PHP 項(xiàng)目中使用的常見目錄結(jié)構(gòu)是:根目錄、public 目錄、app 目錄、resources 目錄、config 目錄、database 目錄、routes 目錄、tests 目錄、vendor 目錄。而在結(jié)合 Vue.js 構(gòu)建項(xiàng)目時(shí),我們可以采用一種改進(jìn)的目錄結(jié)構(gòu),以便更好地協(xié)調(diào) Vue.js 同 PHP 的結(jié)構(gòu)。
首先,我們需要將通用文件(比如 index.html 和 package.json)放在根目錄中。public 目錄下存放的是公共資源,比如靜態(tài)文件(CSS、JavaScript 等),以及 index.php 文件。而我們會(huì)將 Vue.js 構(gòu)建完成的前端文件(如 JS、CSS、icon 等)放在 public 目錄下的 dist 文件夾中。
- root - index.html - package.json - public - index.php - assets - dist
app 目錄,是我們放置 PHP 相關(guān)代碼的地方。這里包含了我們整個(gè)項(xiàng)目的業(yè)務(wù)邏輯代碼,比如模型、視圖、控制器和服務(wù)提供者等。resources 目錄下存放的是我們項(xiàng)目的視圖文件,這些視圖文件中包含了界面所有的 HTML 代碼。
- root ... - app - Http - Controllers - VueController.php - Middleware - Requests - Providers - Models - resources - views - hello.blade.php
config 目錄中包含了配置文件,比如 app.php、database.php 等。這些文件存放的都是我們整個(gè)項(xiàng)目的配置項(xiàng)。database 目錄是數(shù)據(jù)庫的存放目錄,因?yàn)槲覀兘Y(jié)合了 Vue.js 與 PHP,所以我們可以采用 Laravel 框架中的 migrations(遷移),通過運(yùn)行 PHP Artisan 的命令遷移或創(chuàng)建數(shù)據(jù)庫中的表。
- root ... - config - app.php - database.php - database - migrations - seeds
routes 目錄包含的是項(xiàng)目中所有的路由配置文件,這些路由用來響應(yīng)客戶端發(fā)出的請(qǐng)求,并處理返回的數(shù)據(jù)。tests 目錄主要用于編寫測(cè)試代碼。
- root ... - routes - web.php - api.php - tests
最后,vendor 目錄存放的是項(xiàng)目依賴的第三方庫代碼,這些庫可以通過 Composer 進(jìn)行管理。比如,我們可以使用 Vue.js、Axios 等常用的工具庫來幫助我們更加高效地開發(fā)項(xiàng)目。
- root ... - vendor - laravel - vue - axios
總體來說,這樣的結(jié)構(gòu)可以讓我們?cè)陂_發(fā) Vue.js 與 PHP 項(xiàng)目時(shí)更加簡單明了,為我們的代碼管理提供便利。