### **9.1 数据事务**
同时对两个以上的表同时进行操作的时候请使用数据库事务处理,不允许直接使用IF处理。
### **9.2 数据验证**
对于客户端传入的参数需先在Validate层进行合法性的检查再交由其他类去处理,请勿直接在控制器处理全部验证。
### **9.3 数组的书写**
在编写时数组统一使用 [ ] 表示,请勿使用array()。
### **9.4 数据的输出**
统一使用return返回数据,而不是echo输出,如非必要,请不要执行exit于die中断。
### **9.6 获取数据**
获取数据请使用think\Request类处理,请勿直接使用$_SESSION、$_GET、$_POST...等这种方法。
### **9.7 关于第三方集成框架**
当项目使用了某些集成了TP的第三方框架(如fastadmin等)时,如果第三方的规范文档与本文档某些内容发生冲突,原则上以本文档为准,可根据实际情况进行调整;本文档未提及的规范以第三方文档为准。
### **9.8 实际操作中我应该如何写业务**
在了解业务模型的情况下可以轻松的设计Model的函数与对象,但是在不确定的情况下,“拆”就成了一个大问题。
把类似getOne(1)这种原继承Model就带的方法加上一个where条件后就封装进对象的函数,对复用性来说是没有什么意义的。
在不确定的能“拆”出去什么函数才能保证复用性的情况下,我建议这样做:
1. 创建基础的控制器与验证器。
2. 创建服务层,先把【所有的业务流程】代码写在Service。
3. 完成业务后把Service里可复用的方法封装进对应Model内(在Service出现过两次同样的代码段)。
- 一、概述
- 二、项目建议
- 三、样例代码
- 3.1 代码风格
- 3.2 普通业务处理流程示意图
- 3.3 事务业务处理流程示意图
- 四、命名规范
- 五、注释标准
- 5.1 方法函数
- 5.2 非config文件
- 5.3 修改代码
- 5.4 数组参数
- 六、MVC建议
- 七、分层描述
- 7.1 控制器 [ Controller ]
- 7.2 验证器 [ Validate ]
- 7.3 服务层 [ Service ]
- 7.4 模型层 [ Model ]
- 八、输出标准
- 8.1 控制器 Response
- 8.2 验证器 Bool
- 8.3 模型 Model | Exception
- 8.4 服务层 Mixed
- 九、其他说明
- 十、模型说明