Skip to content

Navigating a stream

Davide Bellettini edited this page Aug 22, 2015 · 8 revisions

To navigate a stream forward

use EventStore\EventStore;
use EventStore\StreamFeed\LinkRelation;

$es = new EventStore('http://127.0.0.1:2113');

$feed = $es->openStreamFeed('StreamName');

$startingRel = LinkRelation::LAST();
$navigatingRel = LinkRelation::PREVIOUS();

if ($feed->hasLink($startingRel)) {
    $feed = $es->navigateStreamFeed($feed, $startingRel);
}

do {
    foreach ($feed->getEntries() as $entry) {
        $event = $es->readEvent($entry->getEventUrl());
        $type = $entry->getType();
    }
} while (null !== ($feed = $es->navigateStreamFeed($feed, $navigatingRel)));

To navigate a stream backward

use EventStore\EventStore;
use EventStore\StreamFeed\LinkRelation;

$es = new EventStore('http://127.0.0.1:2113');

$feed = $es->openStreamFeed('StreamName');

$startingRel = LinkRelation::FIRST();
$navigatingRel = LinkRelation::NEXT();

if ($feed->hasLink($startingRel)) {
    $feed = $es->navigateStreamFeed($feed, $startingRel);
}

do {
    foreach ($feed->getEntries() as $entry) {
        $event = $es->readEvent($entry->getEventUrl());
        $type = $entry->getType();
    }
} while (null !== ($feed = $es->navigateStreamFeed($feed, $navigatingRel)));

Clone this wiki locally