[英]Inject mock objects using PHP-DI for testing controllers with PHPUnit
[英]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.