[laravel源码]instance解析
说明
instance
的作用是向容器中注入相应的服务。
源码
public function instance($abstract, $instance)
{
// 1. 删除容器 aliases 和 abstractAliases 属性中的值
$this->removeAbstractAlias($abstract);
// 2. deferredServices,bindings,instances,aliases
//按顺序依次检查是否存在
$isBound = $this->bound($abstract);
unset($this->aliases[$abstract]);
// 3. 赋值
$this->instances[$abstract] = $instance;
if ($isBound) {
// 4. 调用回调函数
$this->rebound($abstract);
}
return $instance;
}
分析
- 如果存在重复,
rebound
会被执行
本作品采用《CC 协议》,转载必须注明作者和本文链接