PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / symfony / console / Descriptor / JsonDescriptor.php
independent-analytics / vendor / symfony / console / Descriptor Last commit date
ApplicationDescription.php 3 years ago Descriptor.php 3 years ago DescriptorInterface.php 2 years ago JsonDescriptor.php 3 years ago MarkdownDescriptor.php 3 years ago TextDescriptor.php 3 years ago XmlDescriptor.php 3 years ago
JsonDescriptor.php
128 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace IAWP_SCOPED\Symfony\Component\Console\Descriptor;
12
13 use IAWP_SCOPED\Symfony\Component\Console\Application;
14 use IAWP_SCOPED\Symfony\Component\Console\Command\Command;
15 use IAWP_SCOPED\Symfony\Component\Console\Input\InputArgument;
16 use IAWP_SCOPED\Symfony\Component\Console\Input\InputDefinition;
17 use IAWP_SCOPED\Symfony\Component\Console\Input\InputOption;
18 /**
19 * JSON descriptor.
20 *
21 * @author Jean-François Simon <contact@jfsimon.fr>
22 *
23 * @internal
24 */
25 class JsonDescriptor extends Descriptor
26 {
27 /**
28 * {@inheritdoc}
29 */
30 protected function describeInputArgument(InputArgument $argument, array $options = [])
31 {
32 $this->writeData($this->getInputArgumentData($argument), $options);
33 }
34 /**
35 * {@inheritdoc}
36 */
37 protected function describeInputOption(InputOption $option, array $options = [])
38 {
39 $this->writeData($this->getInputOptionData($option), $options);
40 if ($option->isNegatable()) {
41 $this->writeData($this->getInputOptionData($option, \true), $options);
42 }
43 }
44 /**
45 * {@inheritdoc}
46 */
47 protected function describeInputDefinition(InputDefinition $definition, array $options = [])
48 {
49 $this->writeData($this->getInputDefinitionData($definition), $options);
50 }
51 /**
52 * {@inheritdoc}
53 */
54 protected function describeCommand(Command $command, array $options = [])
55 {
56 $this->writeData($this->getCommandData($command, $options['short'] ?? \false), $options);
57 }
58 /**
59 * {@inheritdoc}
60 */
61 protected function describeApplication(Application $application, array $options = [])
62 {
63 $describedNamespace = $options['namespace'] ?? null;
64 $description = new ApplicationDescription($application, $describedNamespace, \true);
65 $commands = [];
66 foreach ($description->getCommands() as $command) {
67 $commands[] = $this->getCommandData($command, $options['short'] ?? \false);
68 }
69 $data = [];
70 if ('UNKNOWN' !== $application->getName()) {
71 $data['application']['name'] = $application->getName();
72 if ('UNKNOWN' !== $application->getVersion()) {
73 $data['application']['version'] = $application->getVersion();
74 }
75 }
76 $data['commands'] = $commands;
77 if ($describedNamespace) {
78 $data['namespace'] = $describedNamespace;
79 } else {
80 $data['namespaces'] = \array_values($description->getNamespaces());
81 }
82 $this->writeData($data, $options);
83 }
84 /**
85 * Writes data as json.
86 */
87 private function writeData(array $data, array $options)
88 {
89 $flags = $options['json_encoding'] ?? 0;
90 $this->write(\json_encode($data, $flags));
91 }
92 private function getInputArgumentData(InputArgument $argument) : array
93 {
94 return ['name' => $argument->getName(), 'is_required' => $argument->isRequired(), 'is_array' => $argument->isArray(), 'description' => \preg_replace('/\\s*[\\r\\n]\\s*/', ' ', $argument->getDescription()), 'default' => \INF === $argument->getDefault() ? 'INF' : $argument->getDefault()];
95 }
96 private function getInputOptionData(InputOption $option, bool $negated = \false) : array
97 {
98 return $negated ? ['name' => '--no-' . $option->getName(), 'shortcut' => '', 'accept_value' => \false, 'is_value_required' => \false, 'is_multiple' => \false, 'description' => 'Negate the "--' . $option->getName() . '" option', 'default' => \false] : ['name' => '--' . $option->getName(), 'shortcut' => $option->getShortcut() ? '-' . \str_replace('|', '|-', $option->getShortcut()) : '', 'accept_value' => $option->acceptValue(), 'is_value_required' => $option->isValueRequired(), 'is_multiple' => $option->isArray(), 'description' => \preg_replace('/\\s*[\\r\\n]\\s*/', ' ', $option->getDescription()), 'default' => \INF === $option->getDefault() ? 'INF' : $option->getDefault()];
99 }
100 private function getInputDefinitionData(InputDefinition $definition) : array
101 {
102 $inputArguments = [];
103 foreach ($definition->getArguments() as $name => $argument) {
104 $inputArguments[$name] = $this->getInputArgumentData($argument);
105 }
106 $inputOptions = [];
107 foreach ($definition->getOptions() as $name => $option) {
108 $inputOptions[$name] = $this->getInputOptionData($option);
109 if ($option->isNegatable()) {
110 $inputOptions['no-' . $name] = $this->getInputOptionData($option, \true);
111 }
112 }
113 return ['arguments' => $inputArguments, 'options' => $inputOptions];
114 }
115 private function getCommandData(Command $command, bool $short = \false) : array
116 {
117 $data = ['name' => $command->getName(), 'description' => $command->getDescription()];
118 if ($short) {
119 $data += ['usage' => $command->getAliases()];
120 } else {
121 $command->mergeApplicationDefinition(\false);
122 $data += ['usage' => \array_merge([$command->getSynopsis()], $command->getUsages(), $command->getAliases()), 'help' => $command->getProcessedHelp(), 'definition' => $this->getInputDefinitionData($command->getDefinition())];
123 }
124 $data['hidden'] = $command->isHidden();
125 return $data;
126 }
127 }
128