yii2源码分析-yii2依赖注入容器(一)
5674
0
0
在php中,依赖注入以及依赖注入容器,先前我们均有所了解。关于其原理,我们也做过说明,且配有大量的例子加以辅导,如果你还有问题,留言告诉我。
今天我们来看一下yii2内部是如何实现依赖注入容器的。
为什么突然又回到这个问题上了?
接上文对Yii.php的分析,我们应该看Yii.php文件内的最后一行代码了
Yii::$container = new yii\di\Container();
其含义是实例化依赖注入容器,赋值给 Yii::$container 属性,也就是说yii2中依赖注入容器指的就是 yii\di\Container 类的实现。
ps: 需要的话,你可以在源码文件上写一下注解,放宽心,尽管写。
注意,Yii::$container 具有全局性,所以我们在应用中使用 Container 时,尽量使用 Yii::$container 操作,而不是这里实例化一个Container,那里实例化一个Container。
关于Container创建对象的操作,我们可以使用 BaseYii::createObject 方法,该方法封装了 yii\di\Container 类的使用,所以我们通常直接用 Yii::createObject 方法创建对象或者调用可回调函数,这在yii2内非常普遍,后面我们会遇到很多 Yii::createObject 创建对象的例子。
为了避免枯燥的分析,我们来两个例子,希望各位看的更明白些。
在 frontend\components 目录下创建两个类文件 T.php 和 Test.php(compone
还有90%的精彩内容,购买继续阅读
- 评论区
共19条评论
登录
后发布评论