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

鲍勃

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

工厂

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

TestClass实例被创建懒洋洋地,仅在需要时它。

对象

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

如果使用对象,是否也会懒惰地创建实例?

如果是,工厂和对象之间有什么区别?

马修·那波利(Matthew Napoli)

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

要回答您的问题:

如果使用对象,是否也会懒惰地创建实例?

是的,所有定义也都懒洋洋地解决object()了。

如果是,工厂和对象之间有什么区别?

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

老实说,这只是一个语法首选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章