Есть основная сущность в приложении "сайт". Задача подключать различные интеграции к сайту из доступных. Каждую интеграцию хочу сделать отдельным модулем и помещать всю логику и связные данные в таблицу модуля. Со стороны сайта все вроде просто то можем сделать составную таблицу между интеграциями и сайтом.
Логику в интеграциях/модулях можно разделить на две части
- 1 Единовременно
2 Ежедневно
Пример
Модуль SiteMap
Модуль должен получать с удаленного сайта sitemap и парcить его добавляя страницы к сайту
Сайт
При добавлении нового сайта или раз в день запускать какие то действия в подключённых модулях для этого сайта. В частности запускать парсер в модуле Sitemap
Мой вопрос как организовать вызов логики в модулях? Первая мысль это хуки вторая мысль события.
События
В Site делаем событие EVENT_SITE_CREATED
В модуле Sitemap реализуем BootstrapInterface где вешаем обработчики на событие EVENT_SITE_CREATED через статический метод Event::on()
где внутри обработки проверяем подключен ли этот модуль к текущему сайту и выполняем handler который описан ниже к примеру
Поделитесь своими вариантами реализации если кто то делал подобное