Есть Class A, Class B, Class C, Class D. В конструкторе Class D интерфейс iClass, который наследуют классы A и B.
Код: Выделить всё
Class D {
__construct (iClass $object) {
...
}
}
Код: Выделить всё
Class D {
__construct (iClass $object) {
...
}
}
Код: Выделить всё
$container->set(iClass::class, function() {
$object = ...
return new D($object);
});
Код: Выделить всё
class D {
__construct (iClassFactory $factory) {
...
}
function smth($param) {
$object = $factory->create($param);
}
}
Контейнер - это вещь статическая, а не динамическая. Так что логику статически в конфиг, либо динамически в фабрику.MaratCrash писал(а): ↑2017.05.21, 18:46 Не хочется, что в конфиге была логика (даже вызовы билдеров).
Код: Выделить всё
'bootstrap' => [
'log',
'app\bootstrap\ContainerBootstrap',
],