/** * {@inheritdoc} */ protected function describeInputArgument(InputArgument $argument, array $options = array()) { if (null !== $argument->getDefault() && (!is_array($argument->getDefault()) || count($argument->getDefault()))) { $default = sprintf('<comment> (default: %s)</comment>', $this->formatDefaultValue($argument->getDefault())); } else { $default = ''; } $nameWidth = isset($options['name_width']) ? $options['name_width'] : strlen($argument->getName()); $this->writeText(sprintf(" <info>%-{$nameWidth}s</info> %s%s", $argument->getName(), str_replace("\n", "\n" . str_repeat(' ', $nameWidth + 2), $argument->getDescription()), $default), $options); }
/** * {@inheritdoc} */ protected function describeInputArgument(InputArgument $argument, array $options = array()) { if (null !== $argument->getDefault() && (!is_array($argument->getDefault()) || count($argument->getDefault()))) { $default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($argument->getDefault())); } else { $default = ''; } $totalWidth = isset($options['total_width']) ? $options['total_width'] : strlen($argument->getName()); $spacingWidth = $totalWidth - strlen($argument->getName()) + 2; $this->writeText(sprintf(' <info>%s</info>%s%s%s', $argument->getName(), str_repeat(' ', $spacingWidth), preg_replace('/\\s*[\\r\\n]\\s*/', "\n" . str_repeat(' ', $totalWidth + 17), $argument->getDescription()), $default), $options); }
public function testConstructor() { $argument = new InputArgument('foo'); $this->assertEquals('foo', $argument->getName(), '__construct() takes a name as its first argument'); // mode argument $argument = new InputArgument('foo'); $this->assertFalse($argument->isRequired(), '__construct() gives a "InputArgument::OPTIONAL" mode by default'); $argument = new InputArgument('foo', null); $this->assertFalse($argument->isRequired(), '__construct() can take "InputArgument::OPTIONAL" as its mode'); $argument = new InputArgument('foo', InputArgument::OPTIONAL); $this->assertFalse($argument->isRequired(), '__construct() can take "InputArgument::OPTIONAL" as its mode'); $argument = new InputArgument('foo', InputArgument::REQUIRED); $this->assertTrue($argument->isRequired(), '__construct() can take "InputArgument::REQUIRED" as its mode'); try { $argument = new InputArgument('foo', 'ANOTHER_ONE'); $this->fail('__construct() throws an Exception if the mode is not valid'); } catch (\Exception $e) { $this->assertInstanceOf('\\Exception', $e, '__construct() throws an Exception if the mode is not valid'); $this->assertEquals('Argument mode "ANOTHER_ONE" is not valid.', $e->getMessage()); } try { $argument = new InputArgument('foo', -1); $this->fail('__construct() throws an Exception if the mode is not valid'); } catch (\Exception $e) { $this->assertInstanceOf('\\Exception', $e, '__construct() throws an Exception if the mode is not valid'); $this->assertEquals('Argument mode "-1" is not valid.', $e->getMessage()); } }
/** * Adds an InputArgument object. * * @param InputArgument $argument An InputArgument object * * @throws LogicException When incorrect argument is given */ public function addArgument(InputArgument $argument) { if (isset($this->arguments[$argument->getName()])) { throw new LogicException(sprintf('An argument with name "%s" already exists.', $argument->getName())); } if ($this->hasAnArrayArgument) { throw new LogicException('Cannot add an argument after an array argument.'); } if ($argument->isRequired() && $this->hasOptional) { throw new LogicException('Cannot add a required argument after an optional one.'); } if ($argument->isArray()) { $this->hasAnArrayArgument = true; } if ($argument->isRequired()) { ++$this->requiredCount; } else { $this->hasOptional = true; } $this->arguments[$argument->getName()] = $argument; }
/** * @param InputInterface $input * @param InputArgument $argument */ protected function promptMissingArgument(InputInterface $input, $argument) { $hasArgument = false; while (!$hasArgument) { $answer = $this->out->ask($argument->getDescription(), $argument->getDefault()); if ($answer !== null) { $hasArgument = true; $input->setArgument($argument->getName(), $answer); } elseif (!$argument->isRequired()) { $hasArgument = true; } } }
/** * {@inheritdoc} */ protected function describeInputArgument(InputArgument $argument, array $options = []) { $this->write('* **`' . $argument->getName() . "`**"); $notes = [$argument->isRequired() ? "required" : "optional"]; if ($argument->isArray()) { $notes[] = "multiple values allowed"; } $this->write(' (' . implode('; ', $notes) . ')'); $this->write(" \n " . $argument->getDescription()); if (!$argument->isRequired() && $argument->getDefault()) { $default = var_export($argument->getDefault(), true); $this->write(" \n Default: `{$default}``"); } }
/** * {@inheritdoc} */ protected function describeInputArgument(InputArgument $argument, array $options = array()) { $dom = new \DOMDocument('1.0', 'UTF-8'); $dom->appendChild($objectXML = $dom->createElement('argument')); $objectXML->setAttribute('name', $argument->getName()); $objectXML->setAttribute('is_required', $argument->isRequired() ? 1 : 0); $objectXML->setAttribute('is_array', $argument->isArray() ? 1 : 0); $objectXML->appendChild($descriptionXML = $dom->createElement('description')); $descriptionXML->appendChild($dom->createTextNode($argument->getDescription())); $objectXML->appendChild($defaultsXML = $dom->createElement('defaults')); $defaults = is_array($argument->getDefault()) ? $argument->getDefault() : (is_bool($argument->getDefault()) ? array(var_export($argument->getDefault(), true)) : ($argument->getDefault() ? array($argument->getDefault()) : array())); foreach ($defaults as $default) { $defaultsXML->appendChild($defaultXML = $dom->createElement('default')); $defaultXML->appendChild($dom->createTextNode($default)); } return $this->output($dom, $options); }
/** * {@inheritdoc} */ protected function describeInputArgument(InputArgument $argument, array $options = array()) { $this->write('**' . $argument->getName() . ':**' . "\n\n" . '* Name: ' . ($argument->getName() ?: '<none>') . "\n" . '* Is required: ' . ($argument->isRequired() ? 'yes' : 'no') . "\n" . '* Is array: ' . ($argument->isArray() ? 'yes' : 'no') . "\n" . '* Description: ' . preg_replace('/\\s*\\R\\s*/', PHP_EOL . ' ', $argument->getDescription() ?: '<none>') . "\n" . '* Default: `' . str_replace("\n", '', var_export($argument->getDefault(), true)) . '`'); }
/** * {@inheritdoc} */ protected function describeInputArgument(InputArgument $argument, array $options = array()) { return $this->output(array('name' => $argument->getName(), 'is_required' => $argument->isRequired(), 'is_array' => $argument->isArray(), 'description' => $argument->getDescription(), 'default' => $argument->getDefault()), $options); }
/** * @param InputArgument $argument * * @return array */ private function getInputArgumentData(InputArgument $argument) { return array('name' => $argument->getName(), 'is_required' => $argument->isRequired(), 'is_array' => $argument->isArray(), 'description' => preg_replace('/\\s*\\R\\s*/', ' ', $argument->getDescription()), 'default' => $argument->getDefault()); }
/** * {@inheritdoc} */ protected function describeInputArgument(InputArgument $argument, array $options = array()) { return '**' . $argument->getName() . ':**' . "\n\n" . '* Name: ' . ($argument->getName() ?: '<none>') . "\n" . '* Is required: ' . ($argument->isRequired() ? 'yes' : 'no') . "\n" . '* Is array: ' . ($argument->isArray() ? 'yes' : 'no') . "\n" . '* Description: ' . ($argument->getDescription() ?: '<none>') . "\n" . '* Default: `' . str_replace("\n", '', var_export($argument->getDefault(), true)) . '`'; }
public function testConstructor() { $argument = new InputArgument('foo'); $this->assertEquals('foo', $argument->getName(), '__construct() takes a name as its first argument'); }
/** * {@inheritdoc} */ protected function describeInputArgument(InputArgument $argument, array $options = array()) { $this->write('#### `' . ($argument->getName() ?: '<none>') . "`\n\n" . ($argument->getDescription() ? preg_replace('/\\s*[\\r\\n]\\s*/', "\n", $argument->getDescription()) . "\n\n" : '') . '* Is required: ' . ($argument->isRequired() ? 'yes' : 'no') . "\n" . '* Is array: ' . ($argument->isArray() ? 'yes' : 'no') . "\n" . '* Default: `' . str_replace("\n", '', var_export($argument->getDefault(), true)) . '`'); }