php di — 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')

Если вы используете Objects, экземпляр также создается лениво?

Если да, в чем разница между фабриками и объектами?

4

Решение

Автор PHP-DI здесь, кажется, есть некоторая путаница (учитывая вопрос и насколько неправильным является другой ответ). Я улучшил документацию, надеюсь, это прояснит ситуацию: ec8120ee.

Чтобы ответить на ваши вопросы:

Если вы используете Objects, экземпляр также создается лениво?

да, все определения решаются лениво, object() тоже.

Если да, в чем разница между фабриками и объектами?

Просто синтаксис. В некоторых случаях более практично написать закрытие, в некоторых других случаях вы можете избежать использования шаблона, используя object(),

Честно говоря, это просто предпочтение синтаксиса.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]