События модуля Projects
Модуль генерирует доменные события, часть из которых пробрасывается в глобальную шину.
Локальные события
ProjectCreatedEvent
Когда возникает: после успешного создания проекта (любого типа).
Поля:
projectId(int)ownerId(int)occurredAt(DateTimeImmutable)
ProjectMemberAddedEvent
Когда возникает: после добавления участника в проект (вручную или через приглашение).
Поля:
projectId(int)userId(int)role(string) – admin/memberaddedBy(int)occurredAt(DateTimeImmutable)
ProjectMemberRemovedEvent
Когда возникает: после удаления участника из проекта.
Поля:
projectId(int)userId(int)removedBy(int)occurredAt(DateTimeImmutable)
BoardCreatedEvent
Когда возникает: после создания новой доски в проекте.
Поля:
boardId(int)projectId(int)createdBy(int)occurredAt(DateTimeImmutable)
InvitationCreatedEvent
Когда возникает: после того, как администратор отправил приглашение по email.
Поля:
invitationId(int)projectId(int)email(string)invitedBy(int)token(string)occurredAt(DateTimeImmutable)
InvitationAcceptedEvent
Когда возникает: после того, как пользователь принял приглашение по токену.
Поля:
invitationId(int)projectId(int)email(string)userId(int)occurredAt(DateTimeImmutable)
InvitationCancelledEvent
Когда возникает: после отмены приглашения администратором проекта.
Поля:
invitationId(int)projectId(int)email(string)cancelledBy(int)occurredAt(DateTimeImmutable)
Форвардинг в глобальную шину
В modules/projects/config/di.php определен массив $forwardEvents, содержащий все перечисленные выше события.
Это означает, что все они также отправляются в GlobalEventDispatcher (core) и доступны для подписки из других модулей.
Обработчики
AddOwnerAsMemberListener– добавляет владельца как участника при создании проекта.SendInvitationEmailListener– отправляет email-уведомление о приглашении.ProjectLoggerListener– логирует все события в файлruntime/logs/projects-info.log.