Laravel 容器make的过程
2018-01-26 18:17:13 0 举报
Laravel 容器make流程
作者其他创作
大纲/内容
否
这里还是会调用make,又是一个递归
是
返回解析出的依赖结果
参数?或context concrete?
instances?
调用build构建实例
isInstantiable?
调用解析回调
build
在resolved中记录,表明被解析过
make
获取constructor
抛出异常
可共享并没有上下文构建依赖?
调用newInstanceArgs使用依赖作为参数
在instances中增加实例
调用extender
返回实例
pop buildStack
使用ReflectionClass构建concrete的反射类
通过构造函数需要的参数来判断是否有依赖,没有参数(没有依赖)则直接new一个concrete,并返回
pop出with记录的变量
是否可以构建?
获取concrete
返回解析出的实例
concrete 是闭包?
解析依赖
对每个依赖依次处理
获取别名映射
如果此依赖是类,则调用make解析,如果不是,则尝试解析变量,都不行则获取默认值,还不行就抛出异常
resolve
with变量记录parameters
先检查此依赖是否有传入参数,有则直接获取参数
buildStack记录当前concrete
调用闭包并返回结果
返回instance
resolveDependencies
收藏
0 条评论
下一页