tp6的中间键
Posted sky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tp6的中间键相关的知识,希望对你有一定的参考价值。
php think make:middleware Test
1.通过php think 内置命令生成一个中间键,这个指令会 app/middleware
目录下面生成一个Test
中间件。
<?php declare (strict_types = 1); namespace app\\middleware; class Test { /** * 处理请求 * * @param \\think\\Request $request * @param \\Closure $next * @return Response */ public function handle($request, \\Closure $next) { echo "I\'m a Test middleware "; return $next($request); } }
1.中间件的入口执行方法必须是handle
方法,而且第一个参数是Request
对象,第二个参数是一个闭包。
2.中间件handle
方法的返回值必须是一个Response
对象。
// 中间件配置 return [ // 别名或分组 \'alias\' => [ \'test\' => [\\app\\middleware\\Test::class], ], // 优先级设置,此数组中的中间件会按照数组中的顺序优先执行 \'priority\' => [], ];
1.config/middleware.php配置文件中可以定义中间件别名,设置中间件运行顺序
<?php // 全局中间件定义文件 return [ // 全局请求缓存 // \\think\\middleware\\CheckRequestCache::class, // 多语言加载 // \\think\\middleware\\LoadLangPack::class, // Session初始化 // \\think\\middleware\\SessionInit::class \\app\\middleware\\Test::class, ];
1.app/middleware.php 文件中定义应用级别的中间件设置
protected $middleware = ["test"];
1.在控制器中,通过成员变量定义中间件,对当前控制器生效
Route::rule(\'hello/:name\',\'hello\') ->middleware([\\app\\middleware\\Auth::class, \\app\\middleware\\Check::class]);
思考
1.中间键的执行顺序是全局中间件->应用中间件->路由中间件->控制器中间件
2.配置文件中可以定义中间件的别名和设置执行顺序
3.多个中间键通过数组的方式注册,如果需要传参数也可以通过数组的方式
4.路由中间件是对应某个路由请求
5.如果在应用和控制器中都注册了中间件,中间件会处理多次
以上是关于tp6的中间键的主要内容,如果未能解决你的问题,请参考以下文章