/** * @param EventInterface $event * @return array */ public function serialize(EventInterface $event) { $payload = $event->getPayload(); foreach ($payload as $key => &$value) { if ($value instanceof Uuid) { $value = ['_php_class' => Uuid::class, '_value' => (string) $value]; } if ($value instanceof DateTime) { $value = ['_php_class' => DateTime::class, '_value' => $value->format(DateTime::ISO8601)]; } } return ['class' => get_class($event), 'id' => (string) $event->getId(), 'name' => $event->getName(), 'timestamp' => $event->getTimestamp()->format(DateTime::ISO8601), 'payload' => $payload]; }