Size: a a a

2021 March 04

ПГ

Павел Г. in symfony
В доке правда через более короткий синтаксис :)
источник

AC

Andrew Chernysh in symfony
Не хотелось бы перечислять все классы имплементирующеи интерфейс, как сервисы и их потом еще перечислять под регистраций интерфейса)
источник

ПГ

Павел Г. in symfony
Andrew Chernysh
Не хотелось бы перечислять все классы имплементирующеи интерфейс, как сервисы и их потом еще перечислять под регистраций интерфейса)
Так имплементация же может быть только одна
источник

ПГ

Павел Г. in symfony
в конкретный момент. Или вам нужно собрать все сервисы этого интерфеса например в массиве и получить в контроллере?
источник

ПГ

Павел Г. in symfony
Andrew Chernysh
Не хотелось бы перечислять все классы имплементирующеи интерфейс, как сервисы и их потом еще перечислять под регистраций интерфейса)
InterfacePath:@ClassPath остальные сервисы не нужно пречислять, только когда смените вручную.
источник

AC

Andrew Chernysh in symfony
Я хочу в метод контроллера передать example( ExampleInterface $asd), но он ругается, что нету сервисов под интерфейсом
источник

ПГ

Павел Г. in symfony
Andrew Chernysh
Я хочу в метод контроллера передать example( ExampleInterface $asd), но он ругается, что нету сервисов под интерфейсом
Ну и, в чем проблема? указывайте ExampleInterface:@ClassPath как в доке
источник

AC

Andrew Chernysh in symfony
Павел Г.
Ну и, в чем проблема? указывайте ExampleInterface:@ClassPath как в доке
под интерфейсом может лежать 10 ДТО, они еще и с приватным конструктором)
источник

ПГ

Павел Г. in symfony
Andrew Chernysh
под интерфейсом может лежать 10 ДТО, они еще и с приватным конструктором)
Возможно так нет смысла указывать именно интерфейс если это ДТО. В в контроллере укажите конкретную. Смысл от интерфейса ДТО в контролелере?
источник

ПГ

Павел Г. in symfony
Интерфейс тут возможно важен тому, кто хавает это ДТО. А в контроллере вы знаете что хотите получить
источник

ПГ

Павел Г. in symfony
А вообще странная штука вырисовывается
источник

A

AZA in symfony
ну к примеру разные типы вебхуков приходят
источник

A

AZA in symfony
вполне реальный кейс
источник

ПГ

Павел Г. in symfony
AZA
ну к примеру разные типы вебхуков приходят
И как DI должен знать какой тип вебхука прилетает на контроллер? И почему тогда один экшен? Распилить на несколько экшенов. Если один экшен и тип указан в реквесте вебхука - то должна быть фабрика ДТО которая создает по параметру из реквеста или сделать это через Аргумент резолвер
источник

A

AZA in symfony
Павел Г.
И как DI должен знать какой тип вебхука прилетает на контроллер? И почему тогда один экшен? Распилить на несколько экшенов. Если один экшен и тип указан в реквесте вебхука - то должна быть фабрика ДТО которая создает по параметру из реквеста или сделать это через Аргумент резолвер
di ничего не должен знать о dto
источник

A

AZA in symfony
а аргумент резолвер да
источник

ПГ

Павел Г. in symfony
AZA
di ничего не должен знать о dto
Так речь о том, как настроить DI чтобы в контроллер прилетал нужный DTO
источник

AC

Andrew Chernysh in symfony
Павел Г.
И как DI должен знать какой тип вебхука прилетает на контроллер? И почему тогда один экшен? Распилить на несколько экшенов. Если один экшен и тип указан в реквесте вебхука - то должна быть фабрика ДТО которая создает по параметру из реквеста или сделать это через Аргумент резолвер
Тип вебхука или Дто решает ArgumentValueResolver, который и решает что передать в аргумент методу
источник

AC

Andrew Chernysh in symfony
Павел Г.
Так речь о том, как настроить DI чтобы в контроллер прилетал нужный DTO
Смотри. У меня есть резолвер, который отдает интерфейс, под интерфейсом 10 ДТО. А метод контроллера должен принимать Интерфейс и передавать его дальше)
источник

ПГ

Павел Г. in symfony
Andrew Chernysh
Смотри. У меня есть резолвер, который отдает интерфейс, под интерфейсом 10 ДТО. А метод контроллера должен принимать Интерфейс и передавать его дальше)
Ну тогда сделайте Аргумент резолвер, в котором Фабрика ДТО, которая может создать нужны ДТО в зависимости от реквеста
источник