# Niushop開源商城代碼規范
---
## 命名規范
`ThinkPHP5`遵循`PSR-2`命名規范和`PSR-4`自動加載規范,并且注意如下規范:
### 1. 目錄和文件
* 目錄使用小寫+下劃線;
* 類庫、函數文件統一以`.php`為后綴;
* 類的文件名均以命名空間定義,并且命名空間的路徑和類庫文件所在路徑一致;
* 類文件采用駝峰法命名(首字母大寫),其它文件采用小寫+下劃線命名;
* 類名和類文件名保持一致,統一采用駝峰法命名(首字母大寫);
### 2. 函數和類、屬性命名
* 類的命名采用駝峰法(首字母大寫),例如
`User`、`UserType`,默認不需要添加后綴,例如`UserController`
應該直接命名為`User`;
* 函數的命名使用小寫字母和下劃線(小寫字母開頭)的方式,例如`get_client_ip`;
* 方法的命名使用駝峰法(首字母小寫),例如`getUserName`;
* 屬性的命名使用小寫,例如 shop\_id、`instance`;
* 以雙下劃線“\_\_”打頭的函數或方法作為魔術方法,例如`__call`
和`__autoload`;
### 3. 常量和配置
* 常量以大寫字母和下劃線命名,例如`APP_PATH`和`THINK_PATH`;
* 配置參數以小寫字母和下劃線命名,例如`url_route_on`和`url_convert`;
### 4. 數據表和字段
* 數據表和字段采用小寫加下劃線方式命名,并注意字段名不要以下劃線開頭,例如`think_user`表和`user_name`字段,不建議使用駝峰和中文作為數據表字段命名。
### 5. 應用類庫命名空間規范
應用類庫的根命名空間統一為app(不建議更改,可以設置`app_namespace`配置參數更改,`V5.0.8`版本開始使用`APP_NAMESPACE`常量定義);
例如:`app\index\controller\Index`和`app\index\model\User`。