说一说ThinkPHP6中五花八门的中间件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了说一说ThinkPHP6中五花八门的中间件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1814字,纯文字阅读大概需要3分钟。
内容图文
![说一说ThinkPHP6中五花八门的中间件](/upload/InfoBanner/zyjiaocheng/276/5e85351eba2c42d99164d2c500c3c85a.jpg)
全局中间件:
我们下载好ThinkPHP6的框架后,在app目录下就有一个middleware.php,我们在app目录下定义的中间件叫做全局中间件,全局中间件是对所有应用都生效的中间件。
应用中间件:
那换而言之,如果我们再复制一份middleware.php放在了某个应用下,比如index应用,是不是就叫做应用中间件呢,答案是对的。
控制器中间件:
如果在控制器中操作中间件,是不是就叫做控制器中间件?
路由中间件:
那可不可以在路由中也定义中间件,比如我只想让某个请求使用某个中间件,其他的并不想使用中间件,那也就有了路由中间件。
如果同一个请求,所有类型的中间件都定义了,那执行顺序是如何呢?
全局中间件->应用中间件->路由中间件->控制器中间件
接下来我们看一个实例。
全局中间件:
public function handle($request, \Closure $next) { echo 'app全局中间件'; return $next($request); }
应用中间件:
public function handle($request, \Closure $next) { echo '应用中间件'; return $next($request); }
路由中间件:
Route::rule('hello','index/hello') ->middleware(\app\middleware\Auth::class);
控制器中间件:
在使用控制器中间件之前,我们先定义好别名,在根目录下config\middleware.php中定义别名。这个别名其实就是增加别名标识。别名定义好后,不仅在控制器中间件可以使用,路由中间件也可以使用。
return [ 'alias' => [ 'auth1' => app\middleware\Auth1::class, ], ];
我们在这里定义别名中间件,就不需要在middleware.php中声明了,而是通过在控制中使用别名定义:
class Index { protected $middleware = ['auth1']; public function index() { return 'index'; } public function hello() { echo 'hello方法'; } }
这个时候我们访问hello方法,输出结果是:
app全局中间件
应用中间件
路由中间件
控制器中间件
hello方法
以上就是ThinkPHP6各种中间件的介绍,其实各种中间件并不难理解,主要在于它们之间的执行顺序需要大家明确。
以上就是说一说ThinkPHP6中五花八门的中间件的详细内容。
内容总结
以上是互联网集市为您收集整理的说一说ThinkPHP6中五花八门的中间件全部内容,希望文章能够帮你解决说一说ThinkPHP6中五花八门的中间件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。