Я люблю Dependency Injection, я считаю этот патерн очень даже удобным, но я стал замечать, что им пренебрегают. Мне не нравится в последних версиях Symfony, что если у класса есть конструктор с параметрами, то он автоматически пытается привязывать все эти параметры.
А я не хочу этого делать. У меня очень часто в моделях есть классы, которые получают жизненно важные данные через параметры. Symfony заставляет указать autowiring или отключить его в конфигурации. И это реально бесит. Простое использование классов с моими личными параметрами – теперь боль. Может кто знает, как просто отключить Dependency Injection на один из параметров, без необходимости лезть в service файл?
Пока исправил классы так, что через конструктор они больше не получают важные данные, а у них есть метод init, через который данные и передаются. Только это зло, потому что я могу создать класс без жизненно важных данных, и он будет работать неверно. Это плохо, когда нужно следовать определенным телодвижениям, прежде чем начать использовать класс.
Самый лучший вариант, который я пока нашел - задавать какое-то значение переменной.
function __construct($MyClass= null) {
}
В принципе, это норм.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Михаил сколько php фреймворков знаешь и какие и как часто пользуешься ими?
Михаил, используешь ли ты в своих проектах DDD подход? В последнее время много статей появляется по этой теме.
Я когда-то был немного знаком с каким-то Zend, не помню, какая версия, а реально знаю и использую только Symfony.
Нет, я не использую DDD в чистом виде.
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.