コード例 #1
0
ファイル: RedisEventRecord.php プロジェクト: pauci/cqrs
 /**
  * @param EventMessageInterface $event
  * @param SerializerInterface $serializer
  * @return RedisEventRecord
  */
 public static function fromMessage(EventMessageInterface $event, SerializerInterface $serializer)
 {
     $data = ['id' => $event->getId(), 'timestamp' => $event->getTimestamp(), 'payload_type' => $event->getPayloadType(), 'payload' => $serializer->serialize($event->getPayload()), 'metadata' => $serializer->serialize($event->getMetadata())];
     if ($event instanceof DomainEventMessageInterface) {
         $data['aggregate'] = ['type' => $event->getAggregateType(), 'id' => $event->getAggregateId(), 'seq' => $event->getSequenceNumber()];
     }
     return new self(json_encode($data));
 }
コード例 #2
0
ファイル: TableEventStore.php プロジェクト: pauci/cqrs
 /**
  * @param EventMessageInterface $event
  * @return array
  */
 private function toArray(EventMessageInterface $event)
 {
     $dateTimeFormat = $this->connection->getDatabasePlatform()->getDateTimeFormatString();
     $timestamp = $event->getTimestamp();
     $data = ['event_id' => (string) $event->getId(), 'event_date' => $timestamp->format($dateTimeFormat), 'event_date_u' => $timestamp->format('u'), 'payload_type' => $event->getPayloadType(), 'payload' => $this->serializer->serialize($event->getPayload()), 'metadata' => $this->serializer->serialize($event->getMetadata())];
     if ($event instanceof DomainEventMessageInterface) {
         $aggregateId = $event->getAggregateId();
         if (!is_int($aggregateId)) {
             $aggregateId = (string) $aggregateId;
         }
         $data = array_merge($data, ['aggregate_type' => $event->getAggregateType(), 'aggregate_id' => $aggregateId, 'sequence_number' => $event->getSequenceNumber()]);
     }
     return $data;
 }