Size: a a a

Генератор непрочитанных сообщений

2020 March 03

AM

Artem Molotov in Генератор непрочитанных сообщений
Думаю в СервисЛокаторе просто хранить соответствие тип-класс и доставать из контейнера по классу
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
Artem Molotov
Есть ли смысл в условиях Ларавеля выделять реализации из СервисПровайдеров в фабрики, что бы заюзать в СервисЛокаторе? Или же тупо в сервис локаторе доставать из Контейнера?

Это при условии, что я не могу избавиться от сервис локатора, т.к. должен в зависимости от "типа магазина" создавать тот или иной процессор платежей. Тип при этом храниться в БД и может изменяться админом.
процессор платежей под каким то интерфейсом?
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Alexander Kladov
процессор платежей под каким то интерфейсом?
ProcessorContract
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
да
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
может в фабрике ProcessorContract создавать нужный тип процессора исходя из твоих условий и везде просто инжектить ProcessorContract?
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
а, я понял проблему, ща подумаю
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
я бы сделал отдельную фабрику, в которую бы заинжектил сервис локатор
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
вот
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Alexander Kladov
может в фабрике ProcessorContract создавать нужный тип процессора исходя из твоих условий и везде просто инжектить ProcessorContract?
в принципе можно и так, кажется, но от сервис локатора это вроде мало чем будет отличаться
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
подумаю, пасиб
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
под фабрикой я понимаю отдельный сервис, типа ProcessorFactory, с методом create(string type): ProcessorContract
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
и везде где нужно ты инжектишь фабрику и достаёшь нужный тебе процессор
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
и никакого сервис локатора у тебя в коде нету
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Alexander Kladov
под фабрикой я понимаю отдельный сервис, типа ProcessorFactory, с методом create(string type): ProcessorContract
да, я понимаю
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
просто реализация от сервис локатора будет отличаться только тем, что мы вместо условного resolve() будем иметь create()
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
а хотя нет, всё норм
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
Artem Molotov
просто реализация от сервис локатора будет отличаться только тем, что мы вместо условного resolve() будем иметь create()
фишка в том, что если ты юзаешь сервис локатор в коде, то ты можешь что угодно оттуда достать, а в данном случае только нужный процессор
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
это будет проще тестироваться
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
в случае сервис локатора будет передаватьяс ключ сервиса
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Alexander Kladov
фишка в том, что если ты юзаешь сервис локатор в коде, то ты можешь что угодно оттуда достать, а в данном случае только нужный процессор
да
источник