пытаюсь адекватно отвязать модуль в независимый вынести его в гит и тд ...
возьмем некий модуль коммуникации
модуль из себя представляет просто линковку некого linkId с channelId + channelType с определенной бизнес логикой
каналы связи будут конфигурироваться, в этом и вопрос, куда класть конфиг
то есть в конфиг я буду передавать какие каналы связи могут быть, модель какую создавать и тд ...
Код: Выделить всё
'communicationChannels' => [
[
'id' => ChannelTypes::PHONE,
'name' => 'Телефон',
'dtoClass' => ChannelPhoneDto::class,
...
],
],
так же в модуле будет набор виджетов для отображения и изменения
вот в чем проблема:
если я конфиг пропишу в модуле, как например это у gii прописывается то как мне в сервисном слое его юзать ведь модуль при подключении могут назвать как угодно (поэтому в сервисном слое я не могу написать getModule(...)) да или вообще он может быть не инициализирован если я не дергаю его контроллеры и bootstrap
я например буду вызывать его так в проекте к которому он подключается:
Код: Выделить всё
$communication = Yii::$container->get(CommunicationService::class);
думал может сервисный слой объявить как компонент и тогда конфигурировать компонент ... но будет далее но ...
у меня кроме сервисного слоя есть еще виджеты которые тоже должны знать о параметрах из конфига (communicationChannels) ...
может создать отдельный сервисный слой CommunicationSetting, мой модуль добавлять в bootstrap и при инициализации модуля параметры передавать в мой CommunicationSetting (Yii::$container->set()) и тогда я и из CommunicationService и из виджетов могу получать эти параметры обращаясь к CommunicationSetting, ну или раз уж добавляем в bootstrap я могу и CommunicationService там законфигрировать даже просто передав ему уже модуль ...
в какую сторону правильно думать ?)