开发规范
## 命名规范
`ThinkPHP5`遵循`PSR-2`命名规范和`PSR-4`自动加载规范,并且注意如下规范:
### 目录和文件
* 目录使用小写;
* 类库、函数文件统一以`.php`为后缀;
* 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
* 类文件采用驼峰法命名(首字母大写),其它文件采用小写+;
* 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);
### 函数和类、属性命名
* 类的命名采用驼峰法(首字母大写),例如 `User`、`UserType`,默认不需要添加后缀,例如`UserController`应该直接命名为`User`;
* 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 `get_client_ip`;
* 方法的命名使用驼峰法(首字母小写),例如 `getUserName`;
* 属性的命名使用驼峰法(首字母小写),例如 `tableName`、`instance`;
* 以双下划线“**”打头的函数或方法作为魔法方法,例如 `**call`和`\_\_autoload`;
### 常量和配置
* 常量以大写字母和下划线命名,例如 `APP_PATH`和 `THINK_PATH`;
* 配置参数以小写字母和下划线命名,例如 `url_route_on` 和`url_convert`;
### 数据表和字段
* 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 `think_user` 表和 `user_name`字段,不建议使用驼峰和中文作为数据表字段命名。
### 应用类库命名空间规范
应用类库的根命名空间统一为app(可以设置`app_namespace`配置参数更改);
例如:`app\index\controller\Index`和`app\index\model\User`。
> 请避免使用PHP保留字(保留字列表参见 [http://php.net/manual/zh/reserved.keywords.php](http://php.net/manual/zh/reserved.keywords.php) )作为常量、类名和方法名,以及命名空间的命名,否则会造成系统错误。