/** * @param IOption $option * @param array $groupedArgs * @param bool $strict * * @return array * @throws InvalidOptionValueException * @throws MissingOptionValueException */ public function matchOption(IOption $option, array $groupedArgs, $strict = true) { $groupedArgs = $this->argumentsParser->mergeNameAndAlias($groupedArgs, $option->getName(), $option->getAlias()); if ($option->isIncremental()) { $groupedArgs = $this->matchIncrementalOption($option, $groupedArgs, $strict); } else { if ($option->isBoolean()) { $groupedArgs = $this->matchBooleanOption($option, $groupedArgs, $strict); } else { $groupedArgs = $this->matchRegularOption($option, $groupedArgs, $strict); } } return $groupedArgs; }