美文网首页
Thinkphp5.1 的多级控制器和分层控制器

Thinkphp5.1 的多级控制器和分层控制器

作者: 新注册账号 | 来源:发表于2021-02-26 09:12 被阅读0次

Thinkphp5.1 的多级控制器和分层控制器

1.什么是多级控制器?如何进行定义使用?

根据thinkphp的MVC架构设计,通常情况下我们访问的控制器文件放在模块下的controller文件夹下,如:application\service\controller\start.php。我们可以继续在controller文件夹下创建文件夹来实现多级控制器,比如api代码管理,实现版本迭代更新避免直接覆盖,新旧接口混乱的情况。

1.1 定义分级控制器:

新建v1版本商品控制器文件:app\api\controller\v1\Goods.php

注意命名空间是:app\api\controller\v1

<?php

namespace app\api\controller\v1;

class Goods

{

    public function listAll()

    {

        return json(['code'=>0,'msg'=>'success','data'=>'商品列表']);

    }

}

前端访问接口就变成了:your_domain/api/v1.Goods/listAll

1.2 定义多级控制器路由:

但是这种地址太长也不利于管理,结合路由文件修改接口地址,在route文件夹下新增路由文件api.php,内容如下:

<?php

use think\facade\Route;

Route::group('api/v1', function() {

    Route::get('goodsList', '@api/v1/Goods/listAll');//路由到操作方法

});

或者

<?php

use think\facade\Route;

Route::group('api/v1', function() {

    Route::get('goodsList', 'api/v1.Goods/listAll');//路由到模块/控制器/操作

});

前端访问接口就变成了:your_domain/api/v1/goodsList

1.3 多级控制器应用场景:

在项目上线后,如果需要对接口进行迭代升级,还要兼容使用v1版本接口,则可以新建v2版本的控制器,重复以上步骤:新建v2版本商品控制器文件:app\api\controller\v2\Goods.php 省略。。。。

2.分层控制器:

将一些公用的事件业务逻辑抽离出来单独放置一层,以控制器的方式定义出来,就是tp5中的分层控制器。

相关文章

网友评论

      本文标题:Thinkphp5.1 的多级控制器和分层控制器

      本文链接:https://www.haomeiwen.com/subject/vxlhoktx.html