Ответы пользователя по тегу Паттерны проектирования
  • IoC в PHP, как ему лучше объяснить, какой объект инициализировать?

    Есть еще вариант сделать еще 1 интерфейс с другим именем и тогда при инициализации класса не нужно будет делать дополнительные связи. Но такой подход кажется неправильный так как придется делать полный дубль первого интерфейса со всеми его методами.

    //Допустим есть базовый интерфейс:
    interface IBaseDB{
        // здесь список методов
    }
    //Просто наследуем 2 пустых интерфейса от него:
    interface IBaseDBLogDB extends IBaseDB{}
    interface IBaseDBMasterDB extends IBaseDB{}
    //и Забиваем их в IoC:
    $IoC->Bind('IBaseDBLogDB',$log_db_connection_instance);
    $IoC->Bind('IBaseDBMasterDB',$master_db_connection_instance);

    Не вижу здесь дублирования кода, на мой взгляд вполне жизнеспособное решение.
    Ответ написан