Синглтон, антипаттерн и все-все-все

Redjik

Джедай-мастер
DIC стал антипэттерном? вся симфани писана на антипэттерне? странно это...
 

Вурдалак

Продвинутый новичок
Redjik, чувак, никто не пишет $container->get('QueryParser'), а пишут $this->queryParser. Почувствуй разницу. Первый — это service locator, а не DIC.
 
Последнее редактирование:

Redjik

Джедай-мастер
Вурдалак, по твоему использование гетеров приравнивается к пэттерну? внутри то тот же самый $container->get('QueryParser')
не трясите ерундой, разницы нет - есть очередное трололо
 

Redjik

Джедай-мастер
Да тут не холивар, а очередной троллинг, чувака, который слишком много в доту играет и шутит про мамок со школьниками.

Про DIC уже давно нахоливарили в другой ветке :D
 

Вурдалак

Продвинутый новичок
А это и не DI, а Service Locator на уровне контроллера, стандартная холиварная тема: http://nschoenmaker.nl/2013/11/defining-symfony-2-controllers-in-two-ways/
Просто оформлять контроллер как сервис кому-то кажется оверхедом.

И тем не менее, это antipattern. А вот это либо троллинг, либо некомпетентность:
вся симфани писана на антипэттерне?
Попробуй иногда своей головой думать, любитель авторитетов. «А вот здесь Fabien, а вот там Григорий». лол.
 
Последнее редактирование:

Redjik

Джедай-мастер
Service Locator === DIC, дальше что?

Ты не приводишь аргументированной точки зрения.
В симфони Service Container пихается всюду в том или ином виде.

А это и не DI, а Service Locator на уровне контроллера, стандартная холиварная тема: http://nschoenmaker.nl/2013/11/defining-symfony-2-controllers-in-two-ways/
это только подтверждает

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

MiksIr

miksir@home:~$
DIC и сервис локатор по сути синонимы. Разница в том, по сути, в каком контексте используется - с DI или без DI.
Сервис локатор антипаттерн только с точки зрения DI, т.е. с той самой точки зрения, что все, что не DI - антипаттерн.
А ->item или ->get('item') ваще к паттерну отношения не имеет.
 

Redjik

Джедай-мастер
DIC и сервис локатор по сути синонимы. Разница в том, по сути, в каком контексте используется - с DI или без DI.
Сервис локатор антипаттерн только с точки зрения DI, т.е. с той самой точки зрения, что все, что не DI - антипаттерн.
А ->item или ->get('item') ваще к паттерну отношения не имеет.
дак я об этом и говорил =)))
 

Вурдалак

Продвинутый новичок
Вот именно, с того момента как ты DIC начинаешь пихать прямо в другой объект, это уже Service Locator. И инъекция зависимости напрямую или через injected контейнер — в этом и есть принципильная разница. В случае SL появляется зависимость на сам контейнер, появляются проблемы с автокомлпитом и хочется начать убивать. А эту самую разницу некоторые местные аборигены не видят вообще.

Сколько там hell0w0rd? 19? 20? Он знает поболее некоторых из местых «авторитетов» и «уважаемых людей».
 

MiksIr

miksir@home:~$
Проблемы с автокомплитом - это и правда серьезные проблемы, но никакого отношения к паттернам не имеют. В конце концов можно писать ->get(Locator::SOME_SERVICE) т.е. через константы - и никаких проблем с автокомплитом. А остальной холивар сводится к DI или не DI, как мне кажется.
 

Вурдалак

Продвинутый новичок
MiksIr, проблемы с автокомплитом — это симптомы того, что ты делаешь что-то не так. Я говорю просто автомплит после get('x')->, естественно, причём тут вообще ключ.
 

MiksIr

miksir@home:~$
Тем более в phpstorm сейчас есть фича работы с Class::get('some_string') - можно описать что вернет эта конструкция в зависимости от 'some_string'.
 

MiksIr

miksir@home:~$
MiksIr, проблемы с автокомплитом — это симптомы того, что ты делаешь что-то не так. Я говорю просто автомплит после get('x')->, естественно, причём тут вообще ключ.
Это да, проблема. Если классов не очнь много - можно просто их всех перечислить через |. Но в общем лучше, конечно, без такого, да.
 

Вурдалак

Продвинутый новичок
Это да, проблема. Если классов не очнь много - можно просто их всех перечислить через |. Но в общем лучше, конечно, без такого, да.
Это и есть предмет разговора. Такая магия — это просто говнокод. Это факт. Другой вопрос, что тебе может быть проще нафигачить говнокод, это целесообразнее по времени и деньгам, но приятнее пахнуть он не станет. Ты сейчас взял и свёл всю тему в другое русло, обсуждение какой-то там фишки PhpStorm, а ведь так всё хорошо шло, можно было прямо из ковшика говном этого падавана юного поливать.
 

fixxxer

К.О.
Партнер клуба
Использование DI контейнера в качестве сервис локатора и зависимость от контейнера - говнокод. Полный.

Да, сам тоже так делаю, грешен :)
 
Сверху