# 1.目錄規范
* Addons 插件目錄(每個子目錄代表一個插件)
* Application 應用模塊目錄
* Admin 后臺模塊
* Common 公共模塊,不能通過URL訪問
* Home 前臺模塊
* User 用戶中心客戶端,不能通過URL訪問
* Doc 文檔目錄
* Public 公共資源目錄
* Admin 后臺模塊資源文件目錄
* Home 前臺模塊資源文件目錄
* static 公共靜態插件
* Uploads 公共上傳根目錄
# 2.編碼規范
* 功能沒有完成的時候一定要寫 (TODO:)
* 方法和函數有注釋,注釋內容包括功用,參數,返回值,作者,必要是還有示例
* 邏輯復雜的代碼,關鍵部分應有注釋
## 2.1 PHP編碼規范
* **類文件命名**?- 同ThinkPHP命名規范
* 公共控制器的名稱應該和模塊名稱相同
* 默認控制器層 Controller
* **方法命名規范**?- 駝峰命名,不能出現下劃線
* **類屬性規范**?- 類屬性和類方法一致,統一使用駝峰
* **函數命名**?- 小寫字母加下劃線
* **變量命名規范**?- 產品中不涉及到全局變量,局部變量不做強制要求,建議使用下劃線
* 后臺控制器里給列表賦值的變量都用list, 單一數據讀取、保存都用data,其他臨時變量 最好不要使用這兩個,以免造成沖突
## 2.2 前端編碼規范
### 2.2.1 模板文件相關常量
* `__PUBLIC__`?公共資源文件目錄
* `__STATIC__`?公共靜態文件目錄
* `__ADDONS__`?當前模塊插件在**STATIC**/插件名同名資源目錄
* `__IMG__`?當前模塊圖片目錄
* `__CSS__`?當前模塊CSS目錄
* `__JS__`?當前模塊JS目錄
### 2.2.2 模板文件規范
所有的模板文件都繼承 Public/base文件,base模板提供了以下可重載的塊
* **style**?用于添加頁面樣式文件
* **script**?用于添加頁面JS文件和JS代碼
* **sidebar**?左邊導航區域
* **body**?頁面內容,后臺頁面的內容全部放到body塊中
# 3 數據庫規范
* 所有的字段必須添加注釋
* 字段名小寫,多關鍵字使用下劃線分割(關鍵字盡量全稱)
* 所有字段不允許 NULL值
* 字段長度定義(TODO: 具體常用的長度定義)
* 數據表引擎 MyISAM
所有的表應該都有status 字段來標注數據狀態,業務狀態請使用其他字段;status字段類型 為帶符號的 tinyint
* -1 已刪除
* 0 被禁用
* 1 正常
* 2 未審核
如果還需要其他的數據狀態 請先判斷該狀態的數據是有用的數據還是無意義的數據
* 有用的數據狀態 > 2
* 無意義的數據狀態 < -1
* 所有的刪除(除開清空回收站操作) 請 標記status 為 -1
# 4 文檔規范
* 功能模塊文檔
* 文件注釋
* 方法注釋
* 函數注釋
* 代碼塊注釋
注釋必須有 @author 項,方便在遇到問題時候找到作者調整。