*/ private $options; /** * @var array */ private $flagList; /** * @var array */ private $argumentList; public function __construct(array $params) { $this->options = $params['options'] ?? []; $this->flagList = $params['flagList'] ?? []; $this->argumentList = $params['argumentList'] ?? []; } /** * @return array */ public function getOptions(): array { return $this->options; } /** * @return array */ public function getFlagList(): array { return $this->flagList; } /** * @return array */ public function getArgumentList(): array { return $this->argumentList; } /** * Has an option. */ public function hasOption(string $name): bool { return array_key_exists($name, $this->options); } /** * Get an option. */ public function getOption(string $name): ?string { return $this->options[$name] ?? null; } /** * Has a flag. */ public function hasFlag(string $name): bool { return in_array($name, $this->flagList); } /** * Get an argument by index. */ public function getArgument(int $index): ?string { return $this->argumentList[$index] ?? null; } }