1. 禁止拼音和数字参和在变量名、函数名及数据库表和字段名中,版本号例外
2. 数据库表及字段名均为小写,单词间下划线区分
3. 变量名和函数名均使用小驼峰命名
4. 文件夹及文件均使用大驼峰命名
5. 除model是表名外,其他层成员命名均有属性后缀,且为单数,如service
6. 层命名均为复数,以表严谨
7. 控制器里不要出现数据操作
8. 服务之间可以互相调用
9. 仓储之间禁止互相调用
10. 需要联表,可以使用模型中的关联关系,或是join
11. 函数调用里不要出现1,2等不明意思的数字,请写在当前层类里,作为常量存在
12. 业务涉及事物操作的,在控制器里捕获异常,做事物的开启和提交,服务和数据层只抛异常
13. 接受请求参数只在控制器层处理,其他层只能用接参赋值后的变量进行参数传递
按处理顺序,至上而下分别为
- 请求层 request
- 控制器 controller
- 服务层 service
- 仓储层 repository
- 模型层 model
具体编写细节见demo中注释
路由中需要鉴权的请加上check中间件
所有分层均有基类,可以根据需要抽取公共的方法
在路由里按版本号分组
在控制器里以文件夹划分
用于前端应用需要审核时对旧版本的兼容支持
在项目/app/Http/Middleware下
LogMiddleware作为所有请求的中间件,会做日志等操作
CheckMiddleware为鉴权所需中间件,根据需要实现
两者在/app/Http/Kernel.php中注册
文件为/app/Helpers/ApiResponse.php
可以在请求层,控制器层和服务层调用,集成在其中基类里了
返回码配置在/config/error.php文件里
- composer install
- cp .env.example .env
- storage 目录和 bootstrap/cache 目录应该允许 Web 服务器写入
- php artisan jwt:secret 生成jwt秘钥