сообщения выкидывается событие, на котором висит слушатель, который передает экземпляр сообщения в ParsingService, который должен отдать сообщение конкретному паресу. На каждое сообщение свой класс-парсер, реализующий один общий интерфейс. Вопрос в том где регистрировать эти парсеры. В ParsingServiceProvider? Или достаточно положить их внутрь ParsingService? Не будет ли это нарушением архитектуры ларки?
В провайдере может по условиями забиндить реализации интерфейса
https://laravel.com/docs/9.x/container#contextual-binding
Идея понятна, но это немножко не то. Тут если бы я заранее знал какой парсер применять к сообщению, то оно бы было кстати.
Если парсеры зависят от конфига или других сервисов, то в провайдере. Дальше делаешь фабрику, которая дёрнет контейнер и вернёт соответствующий типу сообщения парсер
Не зависят нисколько. Они жестко сцеплены с текстом сообщения. А аот про фабрику интересно. Имеется ввиду паттерн фабрики?
Обсуждают сегодня