中间件


基本介绍

中间件用于拦截或过滤应用的HTTP请求,并进行必要的业务处理。

可通过如下命令快速生成全局中间件:

php think make:middleware Check

上述指令会 app/middleware目录下面生成一个Check中间件,内容如下:

<?php

namespace app\middleware;

class Check
{
    public function handle($request, \Closure $next)
    {
        if ($request->param('name') == 'think') {
            return redirect('index/think');
        }

        return $next($request);
    }
}

中间件的入口执行函数必须是handle方法,而且第一个参数是Request对象,第二个参数是一个闭包。上述中间件中判断当前请求参数name等于think时进行重定向处理。否则,请求将进一步传递到应用中。


注意事项

中间件分为:全局中间件、应用中间件、路由中间件、控制器中间件;只有在路由中间件中才能获取请求欲访问的控制器和方法名称,因此路由中间件也是最常用的中间件;路由中间件并非只拦截定义了路由的请求,只是路由中间件与全局中间件的执行时机不同而已。下面是各中间件的执行顺序和时机:全局中间件->应用中间件->路由中间件->控制器中间件


如下图,配置全局路由中间件:




详见:https://www.kancloud.cn/manual/thinkphp6_0/1037493


举报

© 著作权归作者所有


0