> 以下章节的规范定义, 必须遵循官方文档的推荐为准来定义
**目录和文件**
* 目录不强制规范,驼峰及小写+下划线模式均支持
* 类库、函数文件统一以.php为后缀
* 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致
* 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写)
**函数和类、属性命名**
* 类的命名采用驼峰法,并且首字母大写,例如 User、UserType,默认不需要添加后缀,例如UserController应该直接命名为User
* 函数(存放在common.php)的命名使用小写字母和下划线(小写字母开头)的方式,例如 get\_client\_ip
* 方法(业务类)的命名使用驼峰法,并且首字母小写,例如 getUserName
* 属性的命名使用驼峰法,并且首字母小写,例如 tableName、instance
* 实例化类尽量不要使用全路径的命名空间来实例化, 尽量使用use别名
* 实例化model , service , 必须使用统一命名规范:如:userModel = new User()
```
* 不允许跨模块调用控制器方法
```
**函数、方法和类注释**
>类注释
```
/**
* Created by ${PRODUCT_NAME}.
* author wangwenjie.
* email: 1127031353@qq.com
* Date: ${DATE}
* Time: ${TIME}
*/
```
>函数和方法注释
```
/**
* Notes:
* User: wangwenjie
* Date: ${DATE}
* Time: ${TIME}
${PARAM_DOC}
#if (${TYPE_HINT} != "void") * @return ${TYPE_HINT}
#end
${THROWS_DOC}
*/
```
**常量和配置**
* 常量以大写字母和下划线命名,例如 APP\_PATH和 THINK\_PATH;
* 配置参数以小写字母和下划线命名,例如 url\_route\_on 和url\_convert;
**其他规范**
* 第三方成熟类库, 必须使用composer进行集成, 不支持composer的类库或者是第三方平台的sdk在模块中的libraries目录进行集成
* 所有日志必须使用框架日志类来创建, 根据级别去设定等级区分(自定义日志部分, 暂不考虑, 后期根据项目再按实际情况去做目录和规范的定义)
* 中间件的使用说明必须详细, 比如:使用的场景和作用域
* 对于定时任务, 都是基于命令行的方式来实现, 不允许使用url访问的方式来实现