# 规范
* * * * *
### 目录和文件命名
* 目录命令使用小写加下划线。
* 类库、函数文件统一以.php为后缀。
* 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致。
* 类文件采用驼峰法命名(首字母大写),其它文件采用小写加下划线命名。
* 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写)。
* * * * *
### 函数和类、属性命名
* 类的命名采用驼峰法(首字母大写),例如 User。
* 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip。
* 方法的命名使用驼峰法(首字母小写),例如 getUserName。
* 属性的命名使用驼峰法(首字母小写),例如 tableName、instance。
* 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写)。
* * * * *
### 常量和配置命名
* 常量以大写字母和下划线命名,例如 APP_PATH。
* 配置参数以小写字母和下划线命名,例如 url_route_on。
* * * * *
### 数据表和字段命名
* 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如 think_user 表和 user_name字段,不建议使用驼峰和中文作为数据表字段命名。
* * * * *
### 参考建议
* 每个类(不含注释)代码应在200行内,每个方法(不含注释)代码应在20行内,每行末尾不能有空格。
* 控制器层(controller)中,尽量不出现 if else switch 等流程分支语句。
* 业务逻辑尽量封装在逻辑层(logic)中,供控制器调用。
* 数据模型层(model)尽量在逻辑层 logic 中使用,尽量不要再控制器中直接使用model。
* 数据验证尽量写在验证层(validate)中,供逻辑层调用,尽量不要在控制器中进行数据验证。
* 支付|短信 等尽量封装为服务便于后续扩展,图标选择|省市县联动 等尽量封装为插件便于后续复用。
* API接口尽量根据APP界面实现聚合接口,减少APP接口请求。
* 非OneBase函数尽量放在app/function.php文件中,新增非入库配置项尽量放在ext_config.php文件中,extend目录中扩展相关函数放入extend.php文件中。
* 其他文档中遗漏项,尽量参考OneBase编码与命名。
- 序言
- 基础
- 安装环境
- 安装演示
- 规范
- 目录
- 介绍
- 后台介绍
- 后台首页
- 会员管理
- 系统管理
- 系统设置与配置管理
- 菜单管理
- 系统回收站
- 服务管理
- 插件管理
- 文章管理
- 接口管理
- 优化维护
- SEO管理
- 数据库
- 文件清理
- 行为日志
- 执行记录
- 统计分析
- 接口介绍
- 接口文档
- 错误码设计
- Token介绍
- 前台介绍
- 架构
- 架构总览
- 生命周期
- 入口文件
- 模块设计
- 依赖注入
- 控制器架构
- 逻辑架构
- 验证架构
- 服务架构
- 模型架构
- 行为架构
- 插件架构
- 配置
- 配置介绍
- 配置加载
- 配置扩展
- 请求
- 请求信息
- 日志
- 后台行为日志
- 系统执行日志
- 框架日志
- 数据
- 数据库设计
- 数据字典
- 数据库操作
- 事务控制
- 混合操作
- 实战
- 控制器
- 逻辑与验证
- 视图与模型
- 插件研发
- 服务研发
- 接口研发
- 杂项
- 数据导入导出
- 二维码条形码
- 邮件发送
- 云存储服务
- 支付服务
- 短信服务
- 微信分享
- 生成海报
- 聊天室
- PJAX
- Demo
- Widget
- 附录
- 常量参考
- 配置参考
- 函数参考
- 进阶
- Redis
- 自动缓存
- 全自动缓存
- 索引
- 数据签名
- 全自动事务
- 队列