Size: a a a

2020 February 19

DS

Dmitriy S in Yii Framework 3
Но опять же, ты не покроешь всех кейсов, поэтому нужно предусмотреть подключение прокси в билдере контейнера (обоих скорее всехо), и запретитьт создание контейнеров вручную.
источник

DS

Dmitriy S in Yii Framework 3
Я думаю, что гораздо проще это можно сделать на событиях. Контейнер при резолвинге тригерит событие, ты его ловишь и пишешь в коллектор.
источник

Д

Дмитрий in Yii Framework 3
ага, а когда юзер захочет использовать контейнер от другого вендора, у него отвалится весь дебагер)
источник

Д

Дмитрий in Yii Framework 3
короче в "1" прилетает Logger, а в 2 LogCollector)
источник

Д

Дмитрий in Yii Framework 3
если избавимся от конструктора в AbstractController, то прилетит коллектор в обоих случаях, но это не всегда так будет, стоит лишь добавить один интерфейс лишний в конструктор и всё сломается
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
ага, а когда юзер захочет использовать контейнер от другого вендора, у него отвалится весь дебагер)
Не отвалится, надо будет всего лишь обернуть его в композитный контейнер)
источник

Д

Дмитрий in Yii Framework 3
источник

Д

Дмитрий in Yii Framework 3
тесты рабочие только в tests/{Collector,Target}
источник

DS

Dmitriy S in Yii Framework 3
Хмм.. так ты по факту только несколько интерфейсов хочешь дебажить? Так бы сразу и сказал, я думал весь контейнер)
источник
2020 February 20

Д

Дмитрий in Yii Framework 3
Всё, что можно хочу сразу дебажить :) самый кайф, когда юзеры будут писать свои реализации панелей
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
Всё, что можно хочу сразу дебажить :) самый кайф, когда юзеры будут писать свои реализации панелей
Сразу предупрежу, что твой путь с прокси для отдельных интерфейсов неверный, он не позволит дебажить даже эти интерфейсы забинденные локально в модулях/сервисах. Реальный путь - билдер/фабрика для контейнеров и прокси-контейнер.
источник

Д

Дмитрий in Yii Framework 3
Dmitriy S
Сразу предупрежу, что твой путь с прокси для отдельных интерфейсов неверный, он не позволит дебажить даже эти интерфейсы забинденные локально в модулях/сервисах. Реальный путь - билдер/фабрика для контейнеров и прокси-контейнер.
В чем проблема?
источник

DS

Dmitriy S in Yii Framework 3
Ну ты же в конфиге прокси собираешься привязывать? А в остальных местах как?
источник

Д

Дмитрий in Yii Framework 3
каких?
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
каких?
Я тебе вчера уже приводил пример.
источник

DS

Dmitriy S in Yii Framework 3
Dmitriy S
Прилетел контейнер в акшин контроллера через  ContainerInterface, в нем есть MailerInterface на котором завязан общий мейлер приложения, ты хочешь передать этот контейнер в сервис, но переопределить мейлер, тогда ты делаешь контейнер с новым мейлеров, создаешь новый композитный контейнер и аттачишь туда контейнер с интерфейса и контейнер с переопределенным мейлером. Если надо еще в один сервис передать еще другой мейлер, то аналогично с новым композитным контейнером. Таким образом ты можешь ветвить контейнер не затрагивая основного. Та же фигня и в мидлтварях будет)
вот
источник

Д

Дмитрий in Yii Framework 3
это уже частные случаи. если переопределишь логер и отключить дебагер, то сам виноват)
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
это уже частные случаи. если переопределишь логер и отключить дебагер, то сам виноват)
Не частные. Давно предполагалось, что модули будут использовать свои котекстные контейнеры. А там могут быть свои интерфейсы. Ну и с логером пример неудачный. Возьми ивент диспетчер. Переопределение ивент диспетчера на локальный - вполне обычная практика, и твой дебагер такие события дебажить не будет.
источник

Д

Дмитрий in Yii Framework 3
эту проблему эвентами тоже не решить
источник

DS

Dmitriy S in Yii Framework 3
Дмитрий
эту проблему эвентами тоже не решить
Какими ивентами??? Это решается билдером/фабрикой и прокси-контейнером, я тебе еще вчера это предлагал. Дебаг через ивенты - альтернативный вариант, но там все равно нужен прокси-контейнер. Потому как ты правильно заметил, что мы можем подключить любой пср-11 контейнер.
источник