как вы решаете след задачу
есть компонента которая делает вещи, зависимости передаются через конструктор, пишутся тесты и тд
рано или поздно появляется задача которой нужна новая зависимость
передача ее черед конструктор влечет за собой тонну правок, тк приходится править кучу тестов добавлять моки хотя в рамках теста она не нужна
какие решения ?
1 продолжать также
2 есть желание передавать контейнер в констуктор, из плюсов что интерфейс всегда одинаковый с другой стороны неочевидно что надо этому классу
в CMS которую я написал ещё до появления laravel, у меня была введена Factory, которая передавалась классам. Классы запрашивали из неё необходимые объекты. Правкой класса Factory, в его коде или через наследование можно было заменять объекты, например устаревший класс для работы с функциями mysql на класс работающий через PDO. Проблем в моих случаях никогда не возникало. Сервис контейнер Laravel по сути тоже самое.