网站建设太金手指六六十一,系统首页设计,制作外贸网站成本,石家庄 网站开发本节课我们来学习一下中间件的用法#xff0c;定义一下中间件。 一#xff0e;定义中间件 1. 中间件的主要用于拦截和过滤 HTTP 请求#xff0c;并进行相应处理#xff1b; 2. 这些请求的功能可以是 URL 重定向、权限验证等等#xff1b; 3. 为了进一步了解中间件的用法定义一下中间件。 一定义中间件 1. 中间件的主要用于拦截和过滤 HTTP 请求并进行相应处理 2. 这些请求的功能可以是 URL 重定向、权限验证等等 3. 为了进一步了解中间件的用法我们首先定义一个基础的中间件 4. 可以通过命令行模式在应用目录下生成一个中间件文件和文件夹 php think make:middleware Check
namespace app\middleware;
class Check
{
public function handle($request, \Closure $next)
{
if ($request-param(name) index) {
return redirect(../);
}
return $next($request);
}
} 5. 然后将这个中间件进行注册在应用目录下创建 middleware.php 中间件配置 return [
app\middleware\Check::class
]; 6. 中间件的入口执行方法必须是handle()方法第一参数请求第二参数是闭包 7. 业务代码判断请求的 name 如果等于 index就拦截住执行中间件跳转到首页 8. 但如果请求的 name 是 lee那需要继续往下执行才行不能被拦死 9. 那么就需要$next($request)把这个请求去调用回调函数 10. 中间件 handle()方法规定需要返回 response 对象才能正常使用 11. 而$next($request)执行后就是返回的 response 对象 12. 为了测试拦截后无法继续执行可以 return response()助手函数测试二前/后置中间件 1. 将$next($request)放在方法底部的方式属于前置中间件 2. 前置中间件就是请求阶段来进行拦截验证比如登录判断、跳转、权限等 3. 而后置中间件就是请求完毕之后再进行验证比如写入日志等等 public function handle($request, \Closure $next)
{
//中间件代码前置
return $next($request);
}
public function handle($request, \Closure $next)
{
$response $next($request);
//中间件代码后置
return $response;
} 三结束调度 1. 中间件提供了一个 end()方法可以在中间件执行到最后时执行 public function end(Response $response)
{
//中间件执行到最后执行
echo $response-getData();
}