Программирую на php потому пишу именно в этой теме, поскольку реализация внедрения DI в разных языках разная (например решения в java мне не подходят).
К самому вопросу:
Что если класс на вход будет постоянно принимать один и тот же класс, который в свою очередь тоже завсим от какого то объекта, а тот в свою очередь от третьего.
Появляется вопрос: Как быстро все это конструировать не используя DI - контейнеры?
Разумно ли устанавливать все стандартные зависимости в конструкторе объекта?
Или в объекте по сути вообще не должно быть new?
Приведу пример: когда делаем запрос за списком статей то вызываем примерно следующее:
$connection = new Connection('db_test'); //допустим что db_test - основная база.
$db = new Db($connection);
$post = new Post($db);
echo $post->count();
разумно ли будет писать всю эту цепочку в конструкторе?
т.е.
class Post{
__construct(){
$connection = new Connection('db_test'); //допустим что db_test - основная база.
$this->db = new Db($connection);
}
}
мне кажется это не разумно. С другой стороны классы Connection + Db - постоянны и не меняются по сути своей. Также мне не хотелось бы писать DI контейнер для каждого "серьезного" класса.
может подскажите где разумней всего писать new (т.е. создавать новые объекты).
Если рассматривать конкретную архитектуру mvc
тот тут ответом бы могло послужить - писать все new в контроллере. Но тоже сомневаюсь. Помогите мне пожалуйста.