Является ли хорошей практикой поддерживать отдельные свойства для фабрик, синглтонов и экземпляров, или есть лучший спосPhp

Кемеровские программисты php общаются здесь
Anonymous
Является ли хорошей практикой поддерживать отдельные свойства для фабрик, синглтонов и экземпляров, или есть лучший спос

Сообщение Anonymous »

Я реализую простой сервисный контейнер PHP для своего личного блога и хочу убедиться, что я его правильно настраиваю. В моем контейнере есть три типа методов регистрации служб:
  • Код: Выделить всё

    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
}
Мне бы хотелось получить отзывы о дизайне, потенциальных подводных камнях или улучшениях, касающихся безопасности типов и удобства обслуживания. Должен ли я сократить свои общедоступные методы и свойства и просто использовать set()?


Подробнее здесь: https://stackoverflow.com/questions/798 ... singletons

Вернуться в «Php»