我的小技巧就是多打印,多调试,多理解,看一遍不懂,再看一遍,一直看到懂了,然后自己能根据理解完整的敲一遍过程之后,然后趁热打铁,将自己理解下来的流程图画下来,我画的图如下:
有一点可能会被误导,我想提一下,就是在前面 有一步 \di\Container::getInstance()->set("car","\di\Car") ,这一步其实在 \di\Container::getInstance()->get() 方法里面没有用到, 可能在获取构造函数的参数Car类的时候会被误解,其实获取到Car类是在Person类的构造函数里面的参数里面获取到的,由反射类获取到Person类的参数,然后获取到是类的参数,递归调用(主要用来判断参数里边的类是否也有依赖关系),最后 通过 反射类的 newInstanceArgs($args)方法实例化Person,此时Person类已经实例化,并且被注入一系列依赖关系的Car类,其中$args为Person构造函数依赖类数组集.、
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
相关文章推荐
- <<BAT资深工程师由浅入深分析Tp5和Tp6底层源码>>4-8章节闭包的理解
- 关于学习<<BAT资深工程师由浅入深分析Tp5和Tp6底层源码>>自动加载Loader.php小结
- TP5源码课think\Route类中rule( )方法中$this->group属性分析(TP5源码课程路由机制深度分析(一) )
- Tp5源码如何理解Loader ::parseName中的preg_replace_callback函数?
- Tp5源码5-8章节route.php中Route::get( )形式类静态访问方法解析
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦