Обязательная Dependency Injection

Я люблю Dependency Injection, я считаю этот патерн очень даже удобным, но я стал замечать, что им пренебрегают. Мне не нравится в последних версиях Symfony, что если у класса есть конструктор с параметрами, то он автоматически пытается привязывать все эти параметры. 

А я не хочу этого делать. У меня очень часто в моделях есть классы, которые получают жизненно важные данные через параметры. Symfony заставляет указать autowiring или отключить его в конфигурации. И это реально бесит. Простое использование классов с моими личными параметрами – теперь боль. Может кто знает, как просто отключить Dependency Injection на один из параметров, без необходимости лезть в service файл? 

Пока исправил классы так, что через конструктор они больше не получают важные данные, а у них есть метод init, через который данные и передаются. Только это зло, потому что я могу создать класс без жизненно важных данных, и он будет работать неверно. Это плохо, когда нужно следовать определенным телодвижениям, прежде чем начать использовать класс. 

Самый лучший вариант, который я пока нашел - задавать какое-то значение переменной. 

function __construct($MyClass= null) {

}

В принципе, это норм. 


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

CrackCoder

Михаил сколько php фреймворков знаешь и какие и как часто пользуешься ими?


ЕвгенийБ

Михаил, используешь ли ты в своих проектах DDD подход? В последнее время много статей появляется по этой теме.


Михаил Фленов

Я когда-то был немного знаком с каким-то Zend, не помню, какая версия, а реально знаю и использую только Symfony.

Нет, я не использую DDD в чистом виде.


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне


Я в социальных сетях
Facebook Telegram Youtube Instagram