工厂:
TestClass::class => function () {
return new TestClass('param');
}
只有在需要时才会懒惰地创建TestClass实例.
对象:
TestClass::class => DI\object()->constructor('param')
如果你使用Objects,那么实例也是懒惰创建的吗?
如果是,工厂和物体之间有什么区别?
解决方法:
这里的PHP-DI作者,似乎存在一些混淆(给出问题以及其他答案有多么错误).我已经改进了文档,希望这样可以解决问题:ec8120ee.
回答你的问题:
If you use Objects, is the instance also created lazily?
是的,所有定义都是懒惰地解决,对象()也是如此.
If yes, what’s the difference between factories and objects?
只是语法.在某些情况下,编写闭包更为实际,在其他一些情况下,您可能希望通过使用object()来避免使用样板.
这只是一个语法偏好.
标签:php,php-di
来源: https://codeday.me/bug/20190627/1306414.html