/** * @param array $eventStream */ public static function initialise(array $eventStream) { $entity = new self(); foreach ($eventStream as $event) { $entity->applyEvent($event); } $entity->commit(); return $entity; }
/** * @param string $username * * @return User */ public static function createWithUsername($username) { $user = new self(); $user->applyEvent(new UserCreatedWithUsername($username)); return $user; }
/** * @param UUID $roomId * @param $name * @param $seatCapacity * @return Room */ public static function create(UUID $roomId, $name, $seatCapacity) { $room = new self(array()); $room->applyEvent(new RoomCreated($roomId, $name, $seatCapacity)); return $room; }