繁体   English   中英

PHP-DI - 工厂与对象之间的差异

[英]PHP-DI - Differences between Factories and Objects

PHP-DI允许一些方法来定义注入,包括工厂和对象: http//php-di.org/doc/php-definitions.html

工厂

TestClass::class => function () {
   return new TestClass('param');
}

只有在需要时才会懒惰地创建TestClass实例。

对象

TestClass::class => DI\object()->constructor('param')

如果你使用Objects,那么实例也是懒惰创建的吗?

如果是,工厂和物体之间有什么区别?

这里的PHP-DI作者,似乎存在一些混淆(给出问题以及其他答案有多么错误)。 我已经改进了文档,希望能够解决这个问题: ec8120ee

回答你的问题:

如果你使用Objects,那么实例也是懒惰创建的吗?

是的 ,所有定义都是懒惰地解决, object()也是如此。

如果是,工厂和物体之间有什么区别?

只是语法。 在某些情况下,编写闭包更为实际,在其他一些情况下,您可能希望通过使用object()来避免使用样板。

这只是一个语法偏好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM