- reset: documentation ( source)
- prev: documentation ( source)
- key: documentation ( source)
- next: documentation ( source)
- current: documentation ( source)
<?php
interface ProcessInterface
{
}
interface RewindIterator extends Iterator
{
public function previous(): void;
}
interface ProcessListInterface extends RewindIterator
{
public function append(ProcessInterface $process): void;
public function clear(): void;
public function isEmpty(): bool;
}
final class ProcessList implements ProcessListInterface
{
private $processes = [];
public function __construct(array $processes = [])
{
foreach ($processes as $process) {
$this->append($process);
}
}
public function append(ProcessInterface $process): void
{
$this->processes[] = $process;
}
public function clear(): void
{
$this->processes = [];
}
public function isEmpty(): bool
{
return empty($this->processes);
}
public function rewind(): ProcessInterface
{
return reset($this->processes);
}
public function current(): ProcessInterface
{
return current($this->processes);
}
public function key(): int
{
return key($this->processes);
}
public function next(): ProcessInterface
{
return next($this->processes);
}
public function previous(): ProcessInterface
{
return prev($this->processes);
}
public function valid(): bool
{
return key($this->processes) !== null;
}
}