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

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

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

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

16 ответов

13 просмотров

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

instanceof нет?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подскажите, а есть vault lite или ченить такое?) А то нужен вольт для похода в вольт, но весит он ~500 мб) как-то многовато для парочки запросов ))
Alexandr Orloff
17
Всем привет, есть небольшая проблема Есть такой скрипт document.addEventListener('DOMContentLoaded', function () { const sliderTabs = document.querySelectorAll('.s...
A da
8
@go1337 @dblackCat Привет. Все ещё дрочусь с fastpanel. Добавил второй домен который должен смотреть в рут того же сайта, но так как это просто домен, а не сайт, я не могу ему...
Ross 🦴
9
До речі, в ево нема можливості чи якого розширення щоб з адмінки з телефона зайти і терміново щось в верстці поправити?
Женя
7
кто-нибудь пользуется тайм-трекерами во время работы? так много разных нагуглил, может есть что-то популярное
Lencore
8
Пацаны. Я разрабатываю софт для инвайтинга на телетон, и столкнулся с такой проблемой, в один из чатов не могу приглашать никого, не дает добавлять, в то же время через официа...
Kernel Panic
11
Скажите, а кому нужен Currency как отдельный плагин вместо полноценного ecommerce в OctoberCMS? Кто-то использует его уже или планирует в будущем? Может я что-то не понимаю?
Igor
13
Розмовами про Рево мені нагадали часи, коли шаблони правилися прямо в адмінці. Хто в курсі, чому відійшли від цієї практики, так блейд не працює? Доволі зручно ж було (інколи)
Женя
3
Всем добрый вечер, Рад оказаться в кругу единомышленников. Начинаю погружаться в мир .net веба. Зовут Ерасыл 🖖 У меня назрел вопрос: Какой процент проектов, прошедшие через в...
Ерасыл
6
Чому? Да тому що без GiT не уявляю нормального проекта а коли код в базі то то так собі
Dmytro Lukianenko
3
Карта сайта