一个困扰我很久的小问题,求圣主们解答
一直都没在意这个小问题 能用就行,但是总见到我就想弄明白了
为什么很多的类里面都有个public function handle($request, Closure $next) {}
这种函数呢,是自动调用?没见手动调用的地方啊。中间件 也是这么写 好多地方直接写 这个 函数 没看见 调用的 Yii 里面也有 接口文档里面也有 。
有人能详细的说一下嘛
handle 这个函数名
就是为了方便 foreach 使用而已,刚好这个名称也比较容易理解。假如三个类都定义了 handle 方法,那是不是可以直接调用这个方法就行了?
下面的代码是事件 Dispatcher 的一个方法,如果你在定义监听器的时候没有定义call 方法,默认会用 handle方法。
名称只不过是个约定,调用肯定是调用了的。
就拿middleware来说,定义了middleware,那我就调用你的handle方法来决定是继续处理请求还是直接返回。这个约定的名称handle在Illuminate\Pipeline\Pipeline这个类的$method属性中定义。调用也是在这个类中调用的。
@eddy8
@oustn 谢谢啦