Example #1
0
 /**
  * Add the given events to the stream and assign a sequence number to them.
  *
  * @param Stream         $stream
  * @param Stream\Event[] $uncommittedEvents
  *
  * @return void
  */
 public function persist(Stream $stream, array $uncommittedEvents)
 {
     foreach ($uncommittedEvents as &$event) {
         $event = $event->withStream($stream);
     }
     $this->storage->persist($uncommittedEvents);
 }
 /**
  * finds a user from storage based on ID and returns a User object located
  * in memory. Normally this kind of logic will be implemented using the Repository pattern.
  * However the important part is in mapRowToUser() below, that will create a business object from the
  * data fetched from storage
  *
  * @param int $id
  *
  * @return User
  */
 public function findById(int $id) : User
 {
     $result = $this->adapter->find($id);
     if ($result === null) {
         throw new \InvalidArgumentException("User #{$id} not found");
     }
     return $this->mapRowToUser($result);
 }