# 開發文檔
`niushop`遵循`PSR-2`命名規范和`PSR-4`自動加載規范,并且注意如下規范:
### 目錄和文件
- 目錄使用小寫+下劃線;
- 類庫、函數文件統一以`.php`為后綴;
- 類的文件名均以命名空間定義,并且命名空間的路徑和類庫文件所在路徑一致;
- 類(包含接口和Trait)文件采用駝峰法命名(首字母大寫),其它文件采用小寫+下劃線命名;
- 類名(包括接口和Trait)和文件名保持一致,統一采用駝峰法命名(首字母大寫);
### 函數和類、屬性命名
- 類的命名采用駝峰法(首字母大寫),例如 `User`、`UserType`;
- 函數的命名使用小寫字母和下劃線(小寫字母開頭)的方式,例如 `get_client_ip`;
- 方法的命名使用駝峰法(首字母小寫),例如 `getUserName`;
- 屬性的命名使用小寫字母和下劃線(小寫字母開頭)的方式,例如 `table_uame`;
- 特例:以雙下劃線`__`打頭的函數或方法作為魔術方法,例如 `__call` 和 `__autoload`;
- 添加統一使用add,編輯統一使用update,刪除統一使用del,操作多條統一加list;
### 常量和配置
- 常量以大寫字母和下劃線命名,例如 `APP_PATH`;
- 配置參數以小寫字母和下劃線命名,例如 `url_route_on` 和`url_convert`;
- 環境變量定義使用大寫字母和下劃線命名,例如`APP_DEBUG`;
### 數據表和字段
- 數據表和字段采用小寫加下劃線方式命名,并注意字段名不要以下劃線開頭,例如 `think_user` 表和 `user_name`字段,不建議使用駝峰和中文作為數據表及字段命名。
> 請避免使用PHP保留字(保留字列表參見 <http://php.net/manual/zh/reserved.keywords.php> )作為常量、類名和方法名,以及命名空間的命名,否則會造成系統錯誤。