Является ли хорошей практикой поддерживать отдельные свойства для фабрик, одиночных объектов и экземпляров в сервисном к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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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