- – для общих экземпляров
Код: Выделить всё
singleton() - – для создания новых экземпляров каждый раз
Код: Выделить всё
factory() - — для предоставления существующего экземпляра вручную.
Код: Выделить всё
instance()
Код: Выделить всё
class Container
{
private array $factories = [];
private array $instances = [];
private array $singletons = [];
public function singleton(string $abstract, callable|string $concrete = null): void
{
$this->singletons[$abstract] = $concrete;
}
public function factory(string $abstract, callable|string $concrete): void
{
$this->factories[$abstract] = $concrete;
}
public function instance(string $abstract, object $instance): void
{
$this->instances[$abstract] = $instance;
}
// ... other container logic here
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... singletons
Мобильная версия