/** * @param array &$options * @param string $value * @param OptionConfig $optionConfig * @return void */ private function addOption(&$options, $value, $optionConfig) { $name = $optionConfig->getName(); if ($optionConfig->isRepeatable()) { if (isset($options[$name]) === false) { $options[$name] = [$value]; } else { $options[$name][] = $value; } } else { $options[$name] = $value; } }
/** * @param OptionConfig $optionConfig * @param bool $isCompact * @param bool $isRequired * @return string */ private function getOptionPattern($optionConfig, $isCompact, $isRequired = null) { $result = ''; $name = $optionConfig->getName(); if (strlen($name) === 1) { $shortName = $name; $name = null; } else { $shortName = $optionConfig->getShortName(); } if ($shortName !== null) { $result .= '-' . $shortName; } if ($name !== null) { if ($shortName !== null) { if ($isCompact) { $result .= '|'; } else { $result .= ', '; } } $result .= '--' . $name; } $argumentConfig = $optionConfig->getArgumentConfig(); if ($argumentConfig !== null) { $values = $argumentConfig->getValues(); if ($values !== null) { $argumentPattern = '(' . implode('|', $values) . ')'; } else { $argumentPattern = '<' . $argumentConfig->getName() . '>'; } if ($argumentConfig->isRequired()) { if ($name === null) { $result .= ' ' . $argumentPattern; } else { $result .= '=' . $argumentPattern; } } else { if ($name === null) { $result .= '[' . $argumentPattern . ']'; } else { $result .= '[=' . $argumentPattern . ']'; } } } if ($isCompact) { if ($isRequired === true || $optionConfig->isRequired()) { if ($name !== null && $shortName !== null) { $result = '(' . $result . ')'; } } else { $result = '[' . $result . ']'; } } return $result; }