appendTo() публичный Метод

public appendTo ( StreamName $streamName, Iterato\Iterator $domainEvents ) : void
$streamName Prooph\EventStore\Stream\StreamName
$domainEvents Iterato\Iterator
Результат void
Пример #1
0
 /**
  * @param StreamName $streamName
  * @param Iterator $streamEvents
  * @throws Exception\RuntimeException
  * @return void
  */
 public function appendTo(StreamName $streamName, Iterator $streamEvents)
 {
     $argv = ['streamName' => $streamName, 'streamEvents' => $streamEvents];
     $event = $this->actionEventEmitter->getNewActionEvent(__FUNCTION__ . '.pre', $this, $argv);
     $this->getActionEventEmitter()->dispatch($event);
     if ($event->propagationIsStopped()) {
         return;
     }
     if (!$this->inTransaction) {
         throw new RuntimeException('Append events to stream failed. EventStore is not in an active transaction');
     }
     $streamName = $event->getParam('streamName');
     $streamEvents = $event->getParam('streamEvents');
     $this->adapter->appendTo($streamName, $streamEvents);
     $this->recordedEvents->append($streamEvents);
     $event->setName(__FUNCTION__ . '.post');
     $this->getActionEventEmitter()->dispatch($event);
 }
Пример #2
0
 /**
  * @param StreamName $streamName
  * @param Message[] $streamEvents
  * @throws Exception\RuntimeException
  * @return void
  */
 public function appendTo(StreamName $streamName, array $streamEvents)
 {
     foreach ($streamEvents as $streamEvent) {
         Assertion::isInstanceOf($streamEvent, Message::class);
     }
     $argv = ['streamName' => $streamName, 'streamEvents' => $streamEvents];
     $event = $this->actionEventEmitter->getNewActionEvent(__FUNCTION__ . '.pre', $this, $argv);
     $this->getActionEventEmitter()->dispatch($event);
     if ($event->propagationIsStopped()) {
         return;
     }
     if ($this->transactionLevel === 0) {
         throw new RuntimeException('Append events to stream failed. EventStore is not in an active transaction');
     }
     $streamName = $event->getParam('streamName');
     $streamEvents = $event->getParam('streamEvents');
     $this->adapter->appendTo($streamName, $streamEvents);
     $this->recordedEvents = array_merge($this->recordedEvents, $streamEvents);
     $event->setName(__FUNCTION__, '.post');
     $this->getActionEventEmitter()->dispatch($event);
 }