MegaMufa
@MegaMufa

Где вы храните названия событий в событийно-ориентированых ситемах?

Доброго дня.

Работаю над проектом на Yii2 у которого модули общаются между собой только через события. Это надо потому что любой модуль может быть просто удален из кодовой базы или добавлен новый. При этом все должно нормально работать и взаимодействовать между собой.

Но я все ломаю голову, как хранить имена событий? Просто строкой их указывать не круто, надо бы константы использовать. Но если константа находится в модуле, то при его удалении отвалится код, использующий их. Хранить имена всех событий где-то глобально тоже не комильфо потому, что ядро не знает о том, какими модулями оперирует.

Еще есть проблема уникальнти имен для событий. Например есть два модуля и у обоих есть событие "ticketCreated". События разные, но при добавлении обработчика мы начнем слушать события сразу для обоих модулей. Думается мне, что надо бы добавлять в название события id модуля или какую-нибудь уникальную строку. Но как это сделать красивее?

В общем суть вопроса: как правильно хранить и обращаться к названиям событий? И как гарантировать уникальность имен?
  • Вопрос задан
  • 342 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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