/** * @param DomainEventMessage $message * @return EventListener[] */ public function locate(DomainEventMessage $message) { $name = $message->type()->name(); if (array_key_exists($name, $this->registry)) { return $this->registry[$name]; } return []; }
/** * @param DomainEventMessage $message * @return void */ public function handle(DomainEventMessage $message) { $this->apply($message->payload(), $message->metaData()); $this->events[] = $message; $this->process(); }
/** * @param DomainEventMessage $message * @return static */ public static function forMessage(DomainEventMessage $message) { return new static(sprintf('No handle method for event %s.', $message->type()->name())); }
/** * @param DomainEventMessage $message * @return SerializedMessageObject */ public function serialize(DomainEventMessage $message) { $object = $this->serializer->serialize($message->payload()); return new SerializedMessageObject($message->aggregateId(), $message->sequence(), $object->name(), $object->payload(), $message->metaData()->serialize(), $message->occurredOn()->format(DATE_ISO8601)); }
/** * @param DomainEventMessage $message * @return string */ protected function method(DomainEventMessage $message) { return 'handle' . $message->type()->name(); }