查看源码:容器中 beforeResolving() 是在哪里调用的
/**
* Register a new before resolving callback for all types.
*
* @param \Closure|string $abstract
* @param \Closure|null $callback
* @return void
*/
public function beforeResolving($abstract, Closure $callback = null)
{
if (is_string($abstract)) {
$abstract = $this->getAlias($abstract);
}
if ($abstract instanceof Closure && is_null($callback)) {
$this->globalBeforeResolvingCallbacks[] = $abstract;
} else {
$this->beforeResolvingCallbacks[$abstract][] = $callback;
}
}
查看源码发现 $this->globalBeforeResolvingCallbacks的值是通过 beforeResolving()函数添加的,但是没有找到 beforeResolving()函数是在哪里被调用呢?
求指导!
这个函数是你自己有需要时调用的,当通过
app()
函数或者依赖注入
进行构造对象时,会自动执行globalBeforeResolvingCallbacks
或者beforeResolvingCallbacks
数组里面的匿名函数,而这些匿名函数是你调用beforeResolving()
注册进去的。