Ба! Приехали. А вот это как понимать?
'action' => 'ActionSay',
Это
зашквар хардкод! Я все смотрю и думаю, ну что то тут не так. Сначала с толку немспейсами сбил меня, но это ни в какие ворота не лезет.
А как, скажи ка мне, дружочек, я могу сменить класс ActionSay? Ну или хотя бы переложить его в другую папку? А?
Косяяяяк.
У меня, если ты заметил конечно, это делается на раз. И не важно, где лежит класс ActionSay. И даже как называется. Я то грешным делом подумал, что это алиас, раз без немспейса. Не мог понять, как это работает. Детский сад и с боку бантик.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (twin @ 14.01.2021 - 21:30) |
Этот синтаксис сложен только для первокласников. |
Он сложен потому что не структурирован. Ладно это твой контейнер, ты все еще хочешь быть Д'артаньяном, так будь им. Ведь у тебя все хорошо и оптимально, ты всегда прав, придумал самое понятное объявление карты зависимости, который разберет каждый первоклассник. Молодец.
Цитата (twin @ 14.01.2021 - 21:30) |
2. Алиасы используются повсеместно. У тебя их нет. |
У меня их нет, ты прав. Пока что не почувствовал проблему в их отсутствии, фабрики по картам соответствия сами могут определить конечный класс и запросить у контейнера его экземпляр.
Цитата (twin @ 14.01.2021 - 21:30) |
3. У меня можно использовать твой синтаксис. Один в один. |
Ну так и используй. Мне свистоперделки твоего контейнера не уперлись.
Цитата (twin @ 14.01.2021 - 21:30) |
Сейчас каждый раз. Но только потому, что shfred сторона не доделана. |
Я думал ты сделаешь это на Pimple и PHP DI, а ты начал дописывать контейнера, я в чем виноват? я не ограничивал тебя в инструментарии.
Цитата (twin @ 14.01.2021 - 21:42) |
У меня его достаточно объявить сервисом, и внедрять по алиасу. И потом достаточно сменить в одном месте. На то и IoC. |
Это не IoC, это просто поддержка алиасов в контейнере зависимостей.
Цитата (twin @ 14.01.2021 - 21:42) |
. Потом можно в любом новом модуле инициализировать новый контейнер |
То есть ты предлагаешь использовать несколько контейнеров в приложении? И при том настраивать их по ходу выполнения программы? Серьезно? Ты уверен?
Цитата (twin @ 14.01.2021 - 21:42) |
У тебя не контейнер, а билдер |
Хорошо билдер, и у тебя тоже билдер, ведь они делают одно и тоже.
Цитата (twin @ 14.01.2021 - 21:42) |
Ты не можешь юзать его во всей систем |
Зачем мне его использовать во всей системе? Мне нужен новый настроенный экземпляр класса, я дам это задание контейнеру. Зачем мне вообще взаимодействовать с контейнером за пределами интерфейса PSR-11?
Цитата (twin @ 14.01.2021 - 22:08) |
. В идеале, в приложении должна быть лишь одна точка, где производится вызов метода container.Resolve(); |
В идеале! Если бы я внедрял зависимости в полученный от фабрик объект руками, то контейнер там не нужен был бы и тогда да, метод типа Resolve у меня вызывался бы в системе ровно один раз, вот
тут. Если ты мне скажешь как я могу автоматически настраивать экземпляры классов по карте зависимостей в фабриках и при этом не применять контейнер, то я буду очень благодарен. Пока что я не вижу альтернативы, кроме как использовать контейнер как абстрактный билдер.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации