两者之间有什么区别
Yii::createObject(User::class, ['username' => 'Me', 'age' => 27])
和
new User('Me', 27)
红色一些,但对我来说仍然相等。好吧,我看到一位作者说第一个具有更好的性能。还有什么吗?
答案 0 :(得分:2)
第二个具有更好的性能,但是在实际应用中并没有太大的区别。主要区别在于Yii::createObject()
使用dependency injection container,因此更加灵活。我将自动解决依赖关系,并且您可以将应用程序配置为使用User
来使用Yii::createObject(User::class, ['username' => 'Me', 'age' => 27])
的不同实现。
通常,您应该阅读guide article about DI来了解Yii::createObject()
的功能,因为它主要提供了使用DI容器创建对象的语法糖。