function XmlDescriptor::getInputOptionDocument
2 calls to XmlDescriptor::getInputOptionDocument()
- XmlDescriptor::describeInputOption in vendor/
symfony/ console/ Descriptor/ XmlDescriptor.php - Describes an InputOption instance.
- XmlDescriptor::getInputDefinitionDocument in vendor/
symfony/ console/ Descriptor/ XmlDescriptor.php
File
-
vendor/
symfony/ console/ Descriptor/ XmlDescriptor.php, line 188
Class
- XmlDescriptor
- XML descriptor.
Namespace
Symfony\Component\Console\DescriptorCode
private function getInputOptionDocument(InputOption $option) : \DOMDocument {
$dom = new \DOMDocument('1.0', 'UTF-8');
$dom->appendChild($objectXML = $dom->createElement('option'));
$objectXML->setAttribute('name', '--' . $option->getName());
$pos = strpos($option->getShortcut() ?? '', '|');
if (false !== $pos) {
$objectXML->setAttribute('shortcut', '-' . substr($option->getShortcut(), 0, $pos));
$objectXML->setAttribute('shortcuts', '-' . str_replace('|', '|-', $option->getShortcut()));
}
else {
$objectXML->setAttribute('shortcut', $option->getShortcut() ? '-' . $option->getShortcut() : '');
}
$objectXML->setAttribute('accept_value', $option->acceptValue() ? 1 : 0);
$objectXML->setAttribute('is_value_required', $option->isValueRequired() ? 1 : 0);
$objectXML->setAttribute('is_multiple', $option->isArray() ? 1 : 0);
$objectXML->appendChild($descriptionXML = $dom->createElement('description'));
$descriptionXML->appendChild($dom->createTextNode($option->getDescription()));
if ($option->acceptValue()) {
$defaults = \is_array($option->getDefault()) ? $option->getDefault() : (\is_bool($option->getDefault()) ? [
var_export($option->getDefault(), true),
] : ($option->getDefault() ? [
$option->getDefault(),
] : []));
$objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
foreach ($defaults as $default) {
$defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
$defaultXML->appendChild($dom->createTextNode($default));
}
}
if ($option->isNegatable()) {
$dom->appendChild($objectXML = $dom->createElement('option'));
$objectXML->setAttribute('name', '--no-' . $option->getName());
$objectXML->setAttribute('shortcut', '');
$objectXML->setAttribute('accept_value', 0);
$objectXML->setAttribute('is_value_required', 0);
$objectXML->setAttribute('is_multiple', 0);
$objectXML->appendChild($descriptionXML = $dom->createElement('description'));
$descriptionXML->appendChild($dom->createTextNode('Negate the "--' . $option->getName() . '" option'));
}
return $dom;
}