/** * @param DomainEvent $event * @return WritableEvent */ public function toWritableEvent(DomainEvent $event) { $serializedEvent = $this->arraySerializer->serialize($event); $eventType = $serializedEvent['messageType']; $data = $serializedEvent['payload']; unset($data['aggregateId']); unset($data['version']); return WritableEvent::newInstance($eventType, $data); }
/** * @param DomainEvent $event * @param EventHandlerInterface $eventHandler */ protected function queueEvent(DomainEvent $event, EventHandlerInterface $eventHandler) { $serializedEvent = $this->arraySerializer->serialize($event); $recipient = get_class($eventHandler); $this->queue->queue(new Message($recipient, $serializedEvent)); }
/** * @param Message $message * @return string */ public function serialize(Message $message) { return json_encode($this->arraySerializer->serialize($message)); }