首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 編碼規範(一):目錄結構與檔案命名規範

     編輯:PHP 相關知識

專案目錄結構標準化

良好的目錄結構是可維護專案的基石。建議採用以下模組化佈局:

project-root/
├── public/              # Web 公開目錄(DocumentRoot)
│   ├── index.php        # 入口檔案
│   ├── assets/          # 靜態資源
│   │   ├── css/
│   │   ├── js/
│   │   ├── images/
│   │   └── fonts/
│   └── uploads/         # 用戶上傳檔案(需權限隔離)
├── src/                 # 應用核心代碼(不可直接訪問)
│   ├── Config/          # 配置檔案
│   ├── Controller/      # 控制器
│   ├── Model/           # 模型/資料層
│   ├── View/            # 視圖模板
│   ├── Service/         # 業務邏輯服務
│   ├── Middleware/      # 中間件
│   └── Utils/           # 工具類
├── tests/               # 測試代碼
├── vendor/              # Composer 依賴(.gitignore)
├── storage/             # 儲存目錄(日誌、快取、編譯模板)
│   ├── logs/
│   ├── cache/
│   └── framework/
├── .env                 # 環境變數(不提交版本庫)
├── composer.json
└── README.md

關鍵原則

  • 公開與私有分離:只有 public/ 可被 Web 直接訪問,核心代碼置於文檔根目錄之外
  • 功能模組化:按業務域劃分而非技術層劃分(如 User/、Order/ 而非單純的 Controller/Model)
  • 配置與代碼分離:環境敏感配置用 .env,結構化配置用 Config/ 下的 PHP 陣列檔

檔案命名規範

類型規範範例說明
目錄kebab-case(小寫+連字符)user-profile, order-management語義清晰、URL 友好
PHP 類別檔StudlyCaps(大駝峰)+ .phpUserController.php, OrderService.php類名與檔名一致,支援 PSR-4 自動載入
PHP 非類別檔snake_case(小寫+底線)+ .phpconfig.php, helpers.php, bootstrap.php功能性腳本、配置檔
視圖模板kebab-case + .phtml/.blade.phpuser-profile.phtml, order-list.blade.php區別於純 PHP 邏輯檔
資源檔kebab-casemain-style.css, app-script.js, logo.png統一小寫,避免大小寫敏感問題
測試檔同被測類名 + Test.phpUserControllerTest.phpPHPUnit 慣例

常見目錄英文命名對照表

  • images/ 或 img/ - 圖片資源
  • styles/ 或 css/ - 樣式表
  • scripts/ 或 js/ - JavaScript
  • includes/ 或 inc/ - 共用引入檔
  • media/ - 多媒體檔案
  • fonts/ - 字體檔案
  • vendor/ - 第三方庫
  • migrations/ - 資料庫遷移腳本
  • seeds/ - 測試種子數據

避坑指南

  1. ❌ 使用中文拼音命名(yonghu/) → ✅ 英文語義命名(user/)
  2. ❌ 大小寫混用(UserController.php vs usercontroller.php) → ✅ 統一大小寫規範,Linux 區分大小寫
  3. ❌ 縮寫不一致(config/ vs cfg/ vs conf/) → ✅ 專案內統一術語表
  4. ❌ 檔案名過長(> 50 字元) → ✅ 簡潔語義,必要時用目錄層級承載語境

統一的目錄結構與命名規範,能降低團隊認知負擔、避免跨平台部署問題、提升自動化工具鏈的可用性。建議在專案啟動時制定並寫入 CONTRIBUTING.md,配合程式碼審查強制執行。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved