控制器模块总览

app目录下共三个业务接口模块

    adminapi 后台业务接口模块
    api 应用端业务接口模块
    kefuapi 客服系统业务接口模块

此三个业务接口模块下目录文件是一样的,每个模块具有独立的路由,配置,事件机制等以下做统一介绍。

一,config目录:主要是当前模块的基本路由规则

return [
    // 是否强制使用路由
    'url_route_must'        => true,
    // 合并路由规则
    'route_rule_merge'      => true,
    // 路由是否完全匹配
    'route_complete_match'  => true,
    // 是否自动转换URL中的控制器和操作名
    'url_convert'           => false,
];

二,controller目录:

所有业务接口均在此目录下
每个模块下面拥有独立的类库及配置文件,一个应用下面有多个控制器负责响应请求,而每个控制器其实就是一个独立的控制器类。
控制器主要负责请求的接收,并调用相关的业务层处理,并最终返回。严格来说,控制器不应该过多的介入业务逻辑处理。

三,middleware中间件目录

  中间件主要用于拦截或过滤应用的http请求,并进行必要的业务处理,降低系统耦合,和路由搭配使用,如权限验证,访问记录,重定向等等。

四,route路由文件目录

   与控制器目录对应,进行路由设置。

五,validate验证器目录

    为具体的验证场景或者数据表定义好验证器类,在控制器中直接调用。$this->validate(array $data, $validate, $message = null, bool $batch = false),注入验证数据和验证器即可完成验证,减少if else等手动验证操作。

六,事件和监听事件

   event.php 内来定义事件;
   事件监听,定义个事件监听器来监听事件的执行,可以同步`php think make:listener UserLogin`来生成监听类;