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

Breadcrumb

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

function XmlDescriptor::getCommandDocument

2 calls to XmlDescriptor::getCommandDocument()
XmlDescriptor::describeCommand in vendor/symfony/console/Descriptor/XmlDescriptor.php
Describes a Command instance.
XmlDescriptor::getApplicationDocument in vendor/symfony/console/Descriptor/XmlDescriptor.php

File

vendor/symfony/console/Descriptor/XmlDescriptor.php, line 47

Class

XmlDescriptor
XML descriptor.

Namespace

Symfony\Component\Console\Descriptor

Code

public function getCommandDocument(Command $command, bool $short = false) : \DOMDocument {
    $dom = new \DOMDocument('1.0', 'UTF-8');
    $dom->appendChild($commandXML = $dom->createElement('command'));
    $commandXML->setAttribute('id', $command->getName());
    $commandXML->setAttribute('name', $command->getName());
    $commandXML->setAttribute('hidden', $command->isHidden() ? 1 : 0);
    $commandXML->appendChild($usagesXML = $dom->createElement('usages'));
    $commandXML->appendChild($descriptionXML = $dom->createElement('description'));
    $descriptionXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getDescription())));
    if ($short) {
        foreach ($command->getAliases() as $usage) {
            $usagesXML->appendChild($dom->createElement('usage', $usage));
        }
    }
    else {
        $command->mergeApplicationDefinition(false);
        foreach (array_merge([
            $command->getSynopsis(),
        ], $command->getAliases(), $command->getUsages()) as $usage) {
            $usagesXML->appendChild($dom->createElement('usage', $usage));
        }
        $commandXML->appendChild($helpXML = $dom->createElement('help'));
        $helpXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getProcessedHelp())));
        $definitionXML = $this->getInputDefinitionDocument($command->getDefinition());
        $this->appendDocument($commandXML, $definitionXML->getElementsByTagName('definition')
            ->item(0));
    }
    return $dom;
}
RSS feed
Powered by Drupal