Я пытался создать свою собственную платформу PHP MVC исключительно в качестве учебного упражнения, и мне хотелось получить некоторую информацию о том, как лучше всего разработать / спроектировать среду для поддержки внедрения зависимостей необязательных пользовательских компонентов.
Например, есть объект конфигурации ядра «core», а затем в папке приложения пользователь может указать свой собственный файл / объект конфигурации приложения, если он этого потребует.
Вместо того, чтобы создавать объект конфигурации ядра в конкретном контроллере, я внедряю объект конфигурации ядра в контроллер, поскольку это облегчит тестирование (и будет следовать принципу внедрения зависимостей).
Это все хорошо и имеет смысл, но что происходит с объектом конфигурации приложения? Пользователь мог бы использовать платформу, и НИКОГДА не нуждаться в объекте / файле конфигурации, специфичном для приложения, и поэтому внедрение объекта конфигурации, специфичного для приложения, для каждого контроллера кажется неэффективным и бесполезным расходом ресурсов
Итак, в основном я спрашиваю, как я могу поддерживать внедрение компонентов зависимостей, которые могут понадобиться или не потребоваться пользователю?
Пожалуйста, имейте в виду, что я очень плохо знаком с идеей внедрения зависимостей и TDD, поэтому я предполагаю, что есть очень тривиальное решение вопроса выше, но я еще не наткнулся на него из всех статей Я прочел.
Я думал, что нашел ответ в этой http://misko.hevery.com/2008/08/21/where-have-all-the-singletons-gone/ Misko Hevery статье, но я думаю, что фабрики не решают проблему необязательных пользовательских компонентов.