list = $list; } /** * Create an instance. * * @param Order[] $list */ public static function create(array $list): self { return new self($list); } /** * @return void */ public function rewind() { $this->position = 0; } /** * @return Order */ public function current() { return $this->list[$this->position]; } /** * * @return int */ public function key() { return $this->position; } public function next() { ++$this->position; } /** * @return bool */ public function valid() { return isset($this->list[$this->position]); } }