1、控制器加载改动
A、参考admin分组下的控制器加载流程
B、主要改动为，原来的操作方法扩展为一个独立的控制器，并返回run方法，让_Admin父类控制器加载，若不存在则定义到404
C、可能会有人说那这样原来的控制器负责干嘛？主要可以用于做一些前置后置操作绑定，或者绑定公共的中间件等，具体参考控制器的代码。

2、后台登录实例传递到模板变量名为：$auth
3、使用$auth->vif(控制器, 方法名); 做按钮权限判断

4、在控制器中，使用$this->_json(状态码，msg，返回值，是否输出json);方法输出json结构给layui，同时该方法会自动记录操作日志。
默认第4个参数为true，如果只需要纯记录日志，则传入false

5、该AUTH权限为TP5.1.27，后端模板使用Layui-Admin iframe 2019最新版本

6、初始账号密码为admin


注意:
父类的，的initialize中必须调用$this->_autoload($this);实例:
    // 统一方法分流加载
    protected function initialize()
    {
        // 先执行父类构造函数
        parent::initialize();
        // 方法加载
        $this->_autoload($this);
    }
作用是把父类的obj，传入中间层，再传递给子类，实现分层解耦，但逻辑耦合。

子类规定必须实现，run方法，用于接收固定参数与执行入口
    // 统一返回方法
    // $param 必留，用于接收get、post的参数传递
    // $_this 必留，父级的obj实例
    public function run($param=[], $_this) {

    }
        
另外内置了一套分表程序，基于ID哈希，自动copy分表，具体用法摸索\extend\org\SubTable.php和Snowflake.php


简单讲解:
把控制器的一个action，分解成一个子类的controller，原本的父类为空类，当作工具类使用，子类通过中间控制器可直接调用父类的实例，达到分层、逻辑解耦。
唯一的缺点，就是TP框架本身的跨控制器调用实例无法使用，不过按实战经验，这类场景是使用再复用场景很强的业务功能上，比如下单，这类的业务建议用微服务的方式解耦成第三方模块，放再extend下