Привет всем. Подскажите пожалуйста как быть. Знаю, что в симфони

можно собрать сервис фабрикой подобным образом:

App\Service\ExampleService:
factory: ['@App\Service\ExampleServiceFactory', createServiceByExampleArg]
arguments: ['@argexample']

В хендлере я хотел бы получить как аргумент конкретный подтип сервиса App\Service\ExampleService. Проблема в том, что фабричный метод определяет подтип по параметру, который появляется в рантайме, до того как происходит инвок хендлера. Как в такой ситуации лучше поступить? Возможно ли сделать так, чтобы в хендлере я просто мог указать в аргументах ExampleService и получить его подтип в соответствии с тем параметром из рантайма?

16 ответов

18 просмотров

Ну если этот параметр появляется до вызова хэндлера, попробуйте его где-то сохранить,а потом вытащить в фабрике через DI. Костыли, но например через теже атрибуты реквеста или parametBag.

instanceof нет?

Игорь Шумиченко
?

фабрика у тебя возвращает объект, проверь на instanceof

𝔏𝔦𝔩𝔦𝔱𝔥
фабрика у тебя возвращает объект, проверь на insta...

Кейс другой: нужно вернуть нужный сервис из фабрики, сервис определяется в рантайме. Я бы просто фабрику подсунул, но задача без фабрики в хэндлере

Павел Г.
Кейс другой: нужно вернуть нужный сервис из фабрик...

"В хендлере я хотел бы получить как аргумент конкретный подтип сервиса"

Павел Г.
Я например тоже не понял причем тут instacnce of )

и получить его подтип в соответствии с тем параметром из рантайма

𝔏𝔦𝔩𝔦𝔱𝔥
и получить его подтип в соответствии с тем парамет...

Так смысл не в том, чтобы определить подтип в хэндлере, а чтобы нужный подтип из фабрики прилетел.

Павел Г.
Так смысл не в том, чтобы определить подтип в хэнд...

Типа фабрика конфет выпускает на том же конвейере пиво?

rmshell 🧬
Типа фабрика конфет выпускает на том же конвейере ...

Типо есть разные шлюзы смс на одном интерфейсе например, и конкретный шлюз опредлеяется где то в рантайме до хэндлера

Павел Г.
Типо есть разные шлюзы смс на одном интерфейсе нап...

И все это заворачиваем на какой нибудь один единственный роут в post?

Павел Г.
Не совсем понял мысль

POST /notify/sms --payload {phone: 79260000000, …} Если запрос такого рода и по каким-то причинам нужно юзать разные например смс шлюзы

rmshell 🧬
POST /notify/sms --payload {phone: 79260000000,...

Ну в моем примере да. Только юзаются не разные - а один, но выбирается он из нескольких где-то ранее. Можно было бы сделать это в самой фабрике, но у ТС другой контекст, и видимо в фабрике - не получается.

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта