Мы все знаем, почему Injection Dependency is awesome, потому что делает код менее связанным, легче тестировать и гораздо приятнее читать! И затем некоторые решили использовать Контейнер Injection Dependency, например pimple для PHP, чтобы помочь с принцип инверсии зависимостей в SOLID.
Поэтому, создавая свой DiC, используя прыщ, передавая его контроллеру и создавая все ваши новые объекты в закрытии, которые на самом деле создаются только тогда, когда разработчик вызывает $container['object']
, это здорово!
Но что происходит, когда у вас есть очень большой набор классов в вашем приложении? Скажите 1000+, и вы хотите, чтобы они были доступны в контейнере?
Понятно, что это будет кошмар, помещая все это в один файл. Какой был бы лучший способ их разделить или было бы предпочтительным альтернативное предложение?
На стороне разделения, как насчет:
- Создание контейнера
- Включение нескольких файлов с классами, сгруппированными в зависимости от приложения
- Добавление в контейнер поэтапно до конца файла включает
С другой стороны, я знаю Symfony2 использует XML/YAML для конфигурации DiC, но на самом деле это не говорит о многом архитектурная сторона вещей, когда приложение содержит так много классов.
Что может сделать разработчик, если у них такая большая база кода?