public loadEvents ( |
||
$streamName | ||
$metadata | array | If empty array is provided, then all events should be returned |
$minVersion | null | integer | Minimum version an event should have |
return | Iterato\Iterator |
/** * @param StreamName $streamName * @param array $metadata * @param null|int $minVersion * @return Iterator */ public function loadEventsByMetadataFrom(StreamName $streamName, array $metadata, $minVersion = null) { $argv = ['streamName' => $streamName, 'metadata' => $metadata, 'minVersion' => $minVersion]; $event = $this->actionEventEmitter->getNewActionEvent(__FUNCTION__ . '.pre', $this, $argv); $this->getActionEventEmitter()->dispatch($event); if ($event->propagationIsStopped()) { return $event->getParam('streamEvents', new ArrayIterator([])); } $streamName = $event->getParam('streamName'); $metadata = $event->getParam('metadata'); $minVersion = $event->getParam('minVersion'); $events = $this->adapter->loadEvents($streamName, $metadata, $minVersion); $event->setName(__FUNCTION__ . '.post'); $event->setParam('streamEvents', $events); $this->getActionEventEmitter()->dispatch($event); if ($event->propagationIsStopped()) { return new ArrayIterator([]); } return $event->getParam('streamEvents'); }