Author: Alexander Miertsch (contact@prooph.de)
 /**
  * Insert an event
  *
  * @param StreamName $streamName
  * @param Message $e
  * @return void
  */
 private function insertEvent(StreamName $streamName, Message $e)
 {
     $eventArr = $this->messageConverter->convertToArray($e);
     MessageDataAssertion::assert($eventArr);
     $eventData = ['event_id' => $eventArr['uuid'], 'version' => $eventArr['version'], 'event_name' => $eventArr['message_name'], 'payload' => $this->payloadSerializer->serializePayload($eventArr['payload']), 'created_at' => $eventArr['created_at']->format('Y-m-d\\TH:i:s.u')];
     foreach ($eventArr['metadata'] as $key => $value) {
         $eventData[$key] = (string) $value;
     }
     $this->connection->insert($this->getTable($streamName), $eventData);
 }
コード例 #2
0
 /**
  * @return null|Message
  */
 public function current()
 {
     if (false === $this->currentItem) {
         return;
     }
     $payload = $this->payloadSerializer->unserializePayload($this->currentItem['payload']);
     $metadata = [];
     //Add metadata stored in table
     foreach ($this->currentItem as $key => $value) {
         if (!in_array($key, $this->standardColumns)) {
             $metadata[$key] = $value;
         }
     }
     $createdAt = \DateTimeImmutable::createFromFormat('Y-m-d\\TH:i:s.u', $this->currentItem['created_at'], new \DateTimeZone('UTC'));
     return $this->messageFactory->createMessageFromArray($this->currentItem['event_name'], ['uuid' => $this->currentItem['event_id'], 'version' => (int) $this->currentItem['version'], 'created_at' => $createdAt, 'payload' => $payload, 'metadata' => $metadata]);
 }