Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. XmlDescriptor.php

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\Descriptor

Code

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;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal