/**
  * @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;
     }
 }
Example #2
0
 /**
  * @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;
 }