Пример из ларавеля могу привести, я там не совсем понимаю как DI работает. Но например, есть экшн отображающий конкретный элемент модели. Например: showItem(User $user) {логика}
Потом мне надо аналогичный метод для другой модели. Смотрю, что все везде дублируют метод в дочерний класс, меняя (User $user) на (Page $page).
Вот и вопрос, как это можно обойти? Я это ранее обходил через DB а не конкретные модели, что бы можно было наследовать. В нове тоже передают в приватную переменную класс с которым он будет работать. Вот и вопрос, почему нельзя было сделать замену класса на уровне use секции. Я думал, что это возможно, оттого и родился этот код для теста. Ибо было проще проверить и понять, что это не работает, чем в мануале рыться. Отсюда и вопрос, как можно ещё решить такую задачу