-
Notifications
You must be signed in to change notification settings - Fork 1.6k
控制器模块总览
liaofei edited this page Jan 20, 2021
·
1 revision
app目录下共三个业务接口模块
1.adminapi:后台业务接口模块
2.api:应用端业务接口模块
3.kefuapi:客服系统业务接口模块
此三个业务接口模块下目录文件是一样的,每个模块具有独立的路由,配置,事件机制等以下做统一介绍。
一,config目录:主要是当前模块的基本路由规则
return [
// 是否强制使用路由
'url_route_must' => true,
// 合并路由规则
'route_rule_merge' => true,
// 路由是否完全匹配
'route_complete_match' => true,
// 是否自动转换URL中的控制器和操作名
'url_convert' => false,
];
二,controller目录:
所有业务接口均在此目录下
每个模块下面拥有独立的类库及配置文件,一个应用下面有多个控制器负责响应请求,而每个控制器其实就是一个独立的控制器类。
控制器主要负责请求的接收,并调用相关的业务层处理,并最终返回。严格来说,控制器不应该过多的介入业务逻辑处理。
三,middleware中间件目录 中间件主要用于拦截或过滤应用的http请求,并进行必要的业务处理,降低系统耦合,和路由搭配使用,如权限验证,访问记录,重定向等等。 当前模块系统中间件有三个:
名称 | 中间件 | 作用 |
---|---|---|
后台登陆验证中间件 | AdminAuthTokenMiddleware | 后台登录token、状态、用户信息等验证 |
权限规则验证中间件 | AdminCkeckRoleMiddleware | 后台登录登录用户各菜单、功能权限验证 |
日志中间件 | AdminLogMiddleware | 各功能操作日志 |
四,route路由文件目录
与控制器目录对应,进行路由设置。
五,validate验证器目录 为具体的验证场景或者数据表定义好验证器类,在控制器中直接调用。$this->validate(array $data, $validate, $message = null, bool $batch = false),注入验证数据和验证器即可完成验证,减少if else等手动验证操作。
六,事件 AdminApiExceptionHandle.php 、event.php、provider.php AdminApiExceptionHandle:事件类,具体的事件业务,event:事件定义文件,定义对应事件的监听,provider:容器定义文件,此三个脚本配套配置使用。 每个模块下都有事件注册机制,但是event.php可无,可以直接在业务中使用助手函数【Event】配置监听。