我是靠谱客的博主 鲜艳项链,最近开发中收集的这篇文章主要介绍php中间件使用场景桌面,thinkphp6 中间件使用笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近开发三频道打通程序时用到了中间件,现总结一下:

第一步:首先用命令行生成中间件

php think make:middleware Check

这个指令会app/middleware目录下面生成一个Check中间件

注:需要用到几个中间件就执行几次,生成几个,此处我生成了一个check的中间件。

namespace appmiddleware;

class Check{

public function handle($request, Closure $next)

{

return $next($request);

}

}

会自动生成一个handle方法,并且必须返回response对象,此处为$request。

在中间件执行结束时,如果定义了end方法,会被回调执行

public function end(thinkResponse $response)

{

// 回调行为

}

注意,在end方法里面不能有任何的响应输出。因为回调触发的时候请求响应输出已经完成了。

中间件可以向request对象中注入变量,比如:

public function handle($request, Closure $next)

{

if (preg_match('~micromessenger~i', $request->header('user-agent'))) {

$request->InApp = 'WeChat';

} else if (preg_match('~alipay~i', $request->header('user-agent'))) {

$request->InApp = 'Alipay';

}

return $next($request);

}

这里判断了useragent是微信还是支付宝,将结果注入到InApp变量中,其他地方用的判断是直接用$request->InApp就可以访问到了。

全局中间件在app目录下面middleware.php文件中定义,使用下面的方式:

return [

appmiddlewareAuth::class,

'check',

'Hello',

];

return [

[appmiddlewareCheck::class,'abc']

];

这里的abc是传入的参数,就是handle方法中第三个参数,handle($request,Closure $next,$param),如果没有参数就直接不用数组形式就可以了。

应用中间件就是把middleware.php文件放到对应的应用里面,比如index,admin文件夹里面就可以了。

讲一下我用的的控制器中间件,不需要用到middleware.php文件,这点和tp5好像不一样。

在控制器中定义中间件:

use appmiddlewareCheck;

protected$middleware= [

Check::class=> ['except'=> ['index']]

];

这里是除了index方法不调用中间件,其他方法都会去调用check这个中间件。这里注意中间件的命名空间,保证正常引入。

如果全部方法都要调用:

protected$middleware= [Check::class];

最后

以上就是鲜艳项链为你收集整理的php中间件使用场景桌面,thinkphp6 中间件使用笔记的全部内容,希望文章能够帮你解决php中间件使用场景桌面,thinkphp6 中间件使用笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部