Terminable 中间件怎么理解?
看中间件文档时,关于Terminable中间件的部分没看懂。
terminate 方法应该同时接收请求和响应。定义了这个中间件之后,别忘了将它添加到路由列表或者 app/Http/Kernel.php 文件的全局中间件中。
当你在中间件上调用 terminate 方法的时候, Laravel 将从 服务容器中解析出一个新的中间件实例。如果在调用 handle 和 terminate 方法的同时使用相同的中间件实例,请使用容器的 singleton 方法在容器中注册中间件。
疑问:
- 中间件添加到路由列表或者全局中间件,是不是为了使当前中间件生效,而不是针对terminate方法做的处理?
- 在中间件上调用terminate方法是什么意思,前面说“如果你在中间件上定义了一个 terminate 方法,那么它将会在响应准备发送到浏览器之后自动调用。”,不是自动调用么,还是可以手动调用?
- 用singleton注册中间件的话是在Provider里手动注册吗?
- 如果多个中间件都实现了terminate方法,那么自动调用的顺序是什么样的?
推荐文章: