Yii :: creatObject()与new关键字之间的差异

时间:2019-05-13 11:55:24

标签: yii2

两者之间有什么区别

Yii::createObject(User::class, ['username' => 'Me', 'age' => 27])

new User('Me', 27)

红色一些,但对我来说仍然相等。好吧,我看到一位作者说第一个具有更好的性能。还有什么吗?

1 个答案:

答案 0 :(得分:2)

第二个具有更好的性能,但是在实际应用中并没有太大的区别。主要区别在于Yii::createObject()使用dependency injection container,因此更加灵活。我将自动解决依赖关系,并且您可以将应用程序配置为使用User来使用Yii::createObject(User::class, ['username' => 'Me', 'age' => 27])的不同实现。

通常,您应该阅读guide article about DI来了解Yii::createObject()的功能,因为它主要提供了使用DI容器创建对象的语法糖。