使用Composer从零开发一个简单的restful框架(10)-分组中间件

其实全局中间件就是分组中间件,只是它是在/根分组上,所以任意路由都会执行全局中间件。

新建 app/middleware/Group.php,内容如下

<?php
namespace app\middleware;

use core\Request;
use core\Response;


class Group {
    public function handle(Request $request, Response $response, \Closure $next): void {
        echo 'Group(路由分组) 中间件 call before<br>';
        $num = mt_rand(0, 1);
        if ($num == 0) {
            $response->abort('请先登录');
            return;
        }

        $next();
        echo 'Group(路由分组) 中间件 call before<br>';
    }
}

编辑route/user.php,添加分组中间件

$router->namespace('app\api');
$router->middleware(\app\middleware\Group::class);

测试

浏览器访问http://phpapi.com/user/login或者http://phpapi.com/user/logout,这里随机模拟了登录判断

当登录成功时,会输出

All(全局) 中间件 call before
Group(路由分组) 中间件 call before
Group(路由分组) 中间件 call before
All(全局) 中间件 call after
from /user/login

当登录失败时,会输出

All(全局) 中间件 call before
Group(路由分组) 中间件 call before
All(全局) 中间件 call after
请先登录
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!