中间件resolve函数问题

浏览:755 发布日期:2020/05/28 分类:ThinkPHP5专区
protected function resolve($type = 'route')
{
return function (Request $request) use ($type) {

$middleware = array_shift($this->queue[$type]);

if (null === $middleware) {
throw new InvalidArgumentException('The queue was exhausted, with no response returned');
}

list($call, $param) = $middleware;

try {
$response = call_user_func_array($call, [$request, $this->resolve($type), $param]);
} catch (HttpResponseException $exception) {
$response = $exception->getResponse();
}

if (!$response instanceof Response) {
throw new LogicException('The middleware must return Response instance');
}

return $response;
};
}
thinkphp5.1中间件Middleware.php里的一个核心函数,这里的if(null === $middleware)没有走到过,这个函数不就是个死循环么,哪位大佬能给讲解下[表情]
最佳答案
评论( 相关
后面还有条评论,点击查看>>