12 namespace Symfony\Component\Console\Descriptor;
36 $dom = new \DOMDocument(
'1.0',
'UTF-8');
37 $dom->appendChild($definitionXML = $dom->createElement(
'definition'));
39 $definitionXML->appendChild($argumentsXML = $dom->createElement(
'arguments'));
44 $definitionXML->appendChild($optionsXML = $dom->createElement(
'options'));
45 foreach ($definition->
getOptions() as $option) {
59 $dom = new \DOMDocument(
'1.0',
'UTF-8');
60 $dom->appendChild($commandXML = $dom->createElement(
'command'));
65 $commandXML->setAttribute(
'id', $command->
getName());
66 $commandXML->setAttribute(
'name', $command->
getName());
68 $commandXML->appendChild($usagesXML = $dom->createElement(
'usages'));
71 $usagesXML->appendChild($dom->createElement(
'usage', $usage));
74 $commandXML->appendChild($descriptionXML = $dom->createElement(
'description'));
75 $descriptionXML->appendChild($dom->createTextNode(str_replace(
"\n",
"\n ", $command->
getDescription())));
77 $commandXML->appendChild($helpXML = $dom->createElement(
'help'));
78 $helpXML->appendChild($dom->createTextNode(str_replace(
"\n",
"\n ", $command->
getProcessedHelp())));
81 $this->
appendDocument($commandXML, $definitionXML->getElementsByTagName(
'definition')->item(0));
94 $dom = new \DOMDocument(
'1.0',
'UTF-8');
95 $dom->appendChild($rootXml = $dom->createElement(
'symfony'));
97 if ($application->
getName() !==
'UNKNOWN') {
98 $rootXml->setAttribute(
'name', $application->
getName());
99 if ($application->
getVersion() !==
'UNKNOWN') {
100 $rootXml->setAttribute(
'version', $application->
getVersion());
104 $rootXml->appendChild($commandsXML = $dom->createElement(
'commands'));
109 $commandsXML->setAttribute(
'namespace', $namespace);
112 foreach ($description->getCommands() as $command) {
117 $rootXml->appendChild($namespacesXML = $dom->createElement(
'namespaces'));
119 foreach ($description->getNamespaces() as $namespaceDescription) {
120 $namespacesXML->appendChild($namespaceArrayXML = $dom->createElement(
'namespace'));
121 $namespaceArrayXML->setAttribute(
'id', $namespaceDescription[
'id']);
123 foreach ($namespaceDescription[
'commands'] as $name) {
124 $namespaceArrayXML->appendChild($commandXML = $dom->createElement(
'command'));
125 $commandXML->appendChild($dom->createTextNode($name));
181 foreach ($importedParent->childNodes as $childNode) {
182 $parentNode->appendChild($parentNode->ownerDocument->importNode($childNode,
true));
195 $dom->formatOutput =
true;
196 $this->
write($dom->saveXML());
206 $dom = new \DOMDocument(
'1.0',
'UTF-8');
208 $dom->appendChild($objectXML = $dom->createElement(
'argument'));
209 $objectXML->setAttribute(
'name', $argument->
getName());
210 $objectXML->setAttribute(
'is_required', $argument->
isRequired() ? 1 : 0);
211 $objectXML->setAttribute(
'is_array', $argument->
isArray() ? 1 : 0);
212 $objectXML->appendChild($descriptionXML = $dom->createElement(
'description'));
213 $descriptionXML->appendChild($dom->createTextNode($argument->
getDescription()));
215 $objectXML->appendChild($defaultsXML = $dom->createElement(
'defaults'));
217 foreach ($defaults as $default) {
218 $defaultsXML->appendChild($defaultXML = $dom->createElement(
'default'));
219 $defaultXML->appendChild($dom->createTextNode($default));
232 $dom = new \DOMDocument(
'1.0',
'UTF-8');
234 $dom->appendChild($objectXML = $dom->createElement(
'option'));
235 $objectXML->setAttribute(
'name',
'--'.$option->
getName());
237 if (
false !== $pos) {
238 $objectXML->setAttribute(
'shortcut',
'-'.substr($option->
getShortcut(), 0, $pos));
239 $objectXML->setAttribute(
'shortcuts',
'-'.implode(
'|-', explode(
'|', $option->
getShortcut())));
241 $objectXML->setAttribute(
'shortcut', $option->
getShortcut() ?
'-'.$option->getShortcut() :
'');
243 $objectXML->setAttribute(
'accept_value', $option->
acceptValue() ? 1 : 0);
244 $objectXML->setAttribute(
'is_value_required', $option->
isValueRequired() ? 1 : 0);
245 $objectXML->setAttribute(
'is_multiple', $option->
isArray() ? 1 : 0);
246 $objectXML->appendChild($descriptionXML = $dom->createElement(
'description'));
247 $descriptionXML->appendChild($dom->createTextNode($option->
getDescription()));
251 $objectXML->appendChild($defaultsXML = $dom->createElement(
'defaults'));
253 if (!empty($defaults)) {
254 foreach ($defaults as $default) {
255 $defaultsXML->appendChild($defaultXML = $dom->createElement(
'default'));
256 $defaultXML->appendChild($dom->createTextNode($default));