コード例 #1
0
 public function appendEvents($type, DomainEventStreamInterface $events)
 {
     if (!$events->hasNext()) {
         return;
     }
     $next = $events->peek();
     if (0 === $next->getScn() && $this->fileResolver->eventFileExists($type, $next->getAggregateIdentifier())) {
         throw new ConflictingModificationException(sprintf("Could not create event stream for aggregate, such stream " . "already exists, type=%s, id=%s", $type, $next->getAggregateIdentifier()));
     }
     $file = $this->fileResolver->openEventFileForWriting($type, $next->getAggregateIdentifier());
     $eventMessageWriter = new FilesystemEventMessageWriter($file, $this->serializer);
     while ($events->hasNext()) {
         $eventMessageWriter->writeEventMessage($events->next());
     }
 }
コード例 #2
0
 public function peek()
 {
     return $this->eventStream->peek();
 }