Completed
Push — develop ( 32764c...cb3cfa )
by
unknown
20:26
created
vendor/symfony/console/Event/ConsoleSignalEvent.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -20,16 +20,16 @@
 block discarded – undo
20 20
  */
21 21
 final class ConsoleSignalEvent extends ConsoleEvent
22 22
 {
23
-    private $handlingSignal;
23
+	private $handlingSignal;
24 24
 
25
-    public function __construct(Command $command, InputInterface $input, OutputInterface $output, int $handlingSignal)
26
-    {
27
-        parent::__construct($command, $input, $output);
28
-        $this->handlingSignal = $handlingSignal;
29
-    }
25
+	public function __construct(Command $command, InputInterface $input, OutputInterface $output, int $handlingSignal)
26
+	{
27
+		parent::__construct($command, $input, $output);
28
+		$this->handlingSignal = $handlingSignal;
29
+	}
30 30
 
31
-    public function getHandlingSignal(): int
32
-    {
33
-        return $this->handlingSignal;
34
-    }
31
+	public function getHandlingSignal(): int
32
+	{
33
+		return $this->handlingSignal;
34
+	}
35 35
 }
Please login to merge, or discard this patch.
vendor/symfony/console/Attribute/AsCommand.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -17,23 +17,23 @@
 block discarded – undo
17 17
 #[\Attribute(\Attribute::TARGET_CLASS)]
18 18
 class AsCommand
19 19
 {
20
-    public function __construct(
21
-        public string $name,
22
-        public ?string $description = null,
23
-        array $aliases = [],
24
-        bool $hidden = false,
25
-    ) {
26
-        if (!$hidden && !$aliases) {
27
-            return;
28
-        }
20
+	public function __construct(
21
+		public string $name,
22
+		public ?string $description = null,
23
+		array $aliases = [],
24
+		bool $hidden = false,
25
+	) {
26
+		if (!$hidden && !$aliases) {
27
+			return;
28
+		}
29 29
 
30
-        $name = explode('|', $name);
31
-        $name = array_merge($name, $aliases);
30
+		$name = explode('|', $name);
31
+		$name = array_merge($name, $aliases);
32 32
 
33
-        if ($hidden && '' !== $name[0]) {
34
-            array_unshift($name, '');
35
-        }
33
+		if ($hidden && '' !== $name[0]) {
34
+			array_unshift($name, '');
35
+		}
36 36
 
37
-        $this->name = implode('|', $name);
38
-    }
37
+		$this->name = implode('|', $name);
38
+	}
39 39
 }
Please login to merge, or discard this patch.
vendor/symfony/console/Descriptor/TextDescriptor.php 1 patch
Indentation   +310 added lines, -310 removed lines patch added patch discarded remove patch
@@ -28,314 +28,314 @@
 block discarded – undo
28 28
  */
29 29
 class TextDescriptor extends Descriptor
30 30
 {
31
-    /**
32
-     * {@inheritdoc}
33
-     */
34
-    protected function describeInputArgument(InputArgument $argument, array $options = [])
35
-    {
36
-        if (null !== $argument->getDefault() && (!\is_array($argument->getDefault()) || \count($argument->getDefault()))) {
37
-            $default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($argument->getDefault()));
38
-        } else {
39
-            $default = '';
40
-        }
41
-
42
-        $totalWidth = $options['total_width'] ?? Helper::width($argument->getName());
43
-        $spacingWidth = $totalWidth - \strlen($argument->getName());
44
-
45
-        $this->writeText(sprintf('  <info>%s</info>  %s%s%s',
46
-            $argument->getName(),
47
-            str_repeat(' ', $spacingWidth),
48
-            // + 4 = 2 spaces before <info>, 2 spaces after </info>
49
-            preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $argument->getDescription()),
50
-            $default
51
-        ), $options);
52
-    }
53
-
54
-    /**
55
-     * {@inheritdoc}
56
-     */
57
-    protected function describeInputOption(InputOption $option, array $options = [])
58
-    {
59
-        if ($option->acceptValue() && null !== $option->getDefault() && (!\is_array($option->getDefault()) || \count($option->getDefault()))) {
60
-            $default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($option->getDefault()));
61
-        } else {
62
-            $default = '';
63
-        }
64
-
65
-        $value = '';
66
-        if ($option->acceptValue()) {
67
-            $value = '='.strtoupper($option->getName());
68
-
69
-            if ($option->isValueOptional()) {
70
-                $value = '['.$value.']';
71
-            }
72
-        }
73
-
74
-        $totalWidth = $options['total_width'] ?? $this->calculateTotalWidthForOptions([$option]);
75
-        $synopsis = sprintf('%s%s',
76
-            $option->getShortcut() ? sprintf('-%s, ', $option->getShortcut()) : '    ',
77
-            sprintf($option->isNegatable() ? '--%1$s|--no-%1$s' : '--%1$s%2$s', $option->getName(), $value)
78
-        );
79
-
80
-        $spacingWidth = $totalWidth - Helper::width($synopsis);
81
-
82
-        $this->writeText(sprintf('  <info>%s</info>  %s%s%s%s',
83
-            $synopsis,
84
-            str_repeat(' ', $spacingWidth),
85
-            // + 4 = 2 spaces before <info>, 2 spaces after </info>
86
-            preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $option->getDescription()),
87
-            $default,
88
-            $option->isArray() ? '<comment> (multiple values allowed)</comment>' : ''
89
-        ), $options);
90
-    }
91
-
92
-    /**
93
-     * {@inheritdoc}
94
-     */
95
-    protected function describeInputDefinition(InputDefinition $definition, array $options = [])
96
-    {
97
-        $totalWidth = $this->calculateTotalWidthForOptions($definition->getOptions());
98
-        foreach ($definition->getArguments() as $argument) {
99
-            $totalWidth = max($totalWidth, Helper::width($argument->getName()));
100
-        }
101
-
102
-        if ($definition->getArguments()) {
103
-            $this->writeText('<comment>Arguments:</comment>', $options);
104
-            $this->writeText("\n");
105
-            foreach ($definition->getArguments() as $argument) {
106
-                $this->describeInputArgument($argument, array_merge($options, ['total_width' => $totalWidth]));
107
-                $this->writeText("\n");
108
-            }
109
-        }
110
-
111
-        if ($definition->getArguments() && $definition->getOptions()) {
112
-            $this->writeText("\n");
113
-        }
114
-
115
-        if ($definition->getOptions()) {
116
-            $laterOptions = [];
117
-
118
-            $this->writeText('<comment>Options:</comment>', $options);
119
-            foreach ($definition->getOptions() as $option) {
120
-                if (\strlen($option->getShortcut() ?? '') > 1) {
121
-                    $laterOptions[] = $option;
122
-                    continue;
123
-                }
124
-                $this->writeText("\n");
125
-                $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth]));
126
-            }
127
-            foreach ($laterOptions as $option) {
128
-                $this->writeText("\n");
129
-                $this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth]));
130
-            }
131
-        }
132
-    }
133
-
134
-    /**
135
-     * {@inheritdoc}
136
-     */
137
-    protected function describeCommand(Command $command, array $options = [])
138
-    {
139
-        $command->mergeApplicationDefinition(false);
140
-
141
-        if ($description = $command->getDescription()) {
142
-            $this->writeText('<comment>Description:</comment>', $options);
143
-            $this->writeText("\n");
144
-            $this->writeText('  '.$description);
145
-            $this->writeText("\n\n");
146
-        }
147
-
148
-        $this->writeText('<comment>Usage:</comment>', $options);
149
-        foreach (array_merge([$command->getSynopsis(true)], $command->getAliases(), $command->getUsages()) as $usage) {
150
-            $this->writeText("\n");
151
-            $this->writeText('  '.OutputFormatter::escape($usage), $options);
152
-        }
153
-        $this->writeText("\n");
154
-
155
-        $definition = $command->getDefinition();
156
-        if ($definition->getOptions() || $definition->getArguments()) {
157
-            $this->writeText("\n");
158
-            $this->describeInputDefinition($definition, $options);
159
-            $this->writeText("\n");
160
-        }
161
-
162
-        $help = $command->getProcessedHelp();
163
-        if ($help && $help !== $description) {
164
-            $this->writeText("\n");
165
-            $this->writeText('<comment>Help:</comment>', $options);
166
-            $this->writeText("\n");
167
-            $this->writeText('  '.str_replace("\n", "\n  ", $help), $options);
168
-            $this->writeText("\n");
169
-        }
170
-    }
171
-
172
-    /**
173
-     * {@inheritdoc}
174
-     */
175
-    protected function describeApplication(Application $application, array $options = [])
176
-    {
177
-        $describedNamespace = $options['namespace'] ?? null;
178
-        $description = new ApplicationDescription($application, $describedNamespace);
179
-
180
-        if (isset($options['raw_text']) && $options['raw_text']) {
181
-            $width = $this->getColumnWidth($description->getCommands());
182
-
183
-            foreach ($description->getCommands() as $command) {
184
-                $this->writeText(sprintf("%-{$width}s %s", $command->getName(), $command->getDescription()), $options);
185
-                $this->writeText("\n");
186
-            }
187
-        } else {
188
-            if ('' != $help = $application->getHelp()) {
189
-                $this->writeText("$help\n\n", $options);
190
-            }
191
-
192
-            $this->writeText("<comment>Usage:</comment>\n", $options);
193
-            $this->writeText("  command [options] [arguments]\n\n", $options);
194
-
195
-            $this->describeInputDefinition(new InputDefinition($application->getDefinition()->getOptions()), $options);
196
-
197
-            $this->writeText("\n");
198
-            $this->writeText("\n");
199
-
200
-            $commands = $description->getCommands();
201
-            $namespaces = $description->getNamespaces();
202
-            if ($describedNamespace && $namespaces) {
203
-                // make sure all alias commands are included when describing a specific namespace
204
-                $describedNamespaceInfo = reset($namespaces);
205
-                foreach ($describedNamespaceInfo['commands'] as $name) {
206
-                    $commands[$name] = $description->getCommand($name);
207
-                }
208
-            }
209
-
210
-            // calculate max. width based on available commands per namespace
211
-            $width = $this->getColumnWidth(array_merge(...array_values(array_map(function ($namespace) use ($commands) {
212
-                return array_intersect($namespace['commands'], array_keys($commands));
213
-            }, array_values($namespaces)))));
214
-
215
-            if ($describedNamespace) {
216
-                $this->writeText(sprintf('<comment>Available commands for the "%s" namespace:</comment>', $describedNamespace), $options);
217
-            } else {
218
-                $this->writeText('<comment>Available commands:</comment>', $options);
219
-            }
220
-
221
-            foreach ($namespaces as $namespace) {
222
-                $namespace['commands'] = array_filter($namespace['commands'], function ($name) use ($commands) {
223
-                    return isset($commands[$name]);
224
-                });
225
-
226
-                if (!$namespace['commands']) {
227
-                    continue;
228
-                }
229
-
230
-                if (!$describedNamespace && ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) {
231
-                    $this->writeText("\n");
232
-                    $this->writeText(' <comment>'.$namespace['id'].'</comment>', $options);
233
-                }
234
-
235
-                foreach ($namespace['commands'] as $name) {
236
-                    $this->writeText("\n");
237
-                    $spacingWidth = $width - Helper::width($name);
238
-                    $command = $commands[$name];
239
-                    $commandAliases = $name === $command->getName() ? $this->getCommandAliasesText($command) : '';
240
-                    $this->writeText(sprintf('  <info>%s</info>%s%s', $name, str_repeat(' ', $spacingWidth), $commandAliases.$command->getDescription()), $options);
241
-                }
242
-            }
243
-
244
-            $this->writeText("\n");
245
-        }
246
-    }
247
-
248
-    /**
249
-     * {@inheritdoc}
250
-     */
251
-    private function writeText(string $content, array $options = [])
252
-    {
253
-        $this->write(
254
-            isset($options['raw_text']) && $options['raw_text'] ? strip_tags($content) : $content,
255
-            isset($options['raw_output']) ? !$options['raw_output'] : true
256
-        );
257
-    }
258
-
259
-    /**
260
-     * Formats command aliases to show them in the command description.
261
-     */
262
-    private function getCommandAliasesText(Command $command): string
263
-    {
264
-        $text = '';
265
-        $aliases = $command->getAliases();
266
-
267
-        if ($aliases) {
268
-            $text = '['.implode('|', $aliases).'] ';
269
-        }
270
-
271
-        return $text;
272
-    }
273
-
274
-    /**
275
-     * Formats input option/argument default value.
276
-     *
277
-     * @param mixed $default
278
-     */
279
-    private function formatDefaultValue($default): string
280
-    {
281
-        if (\INF === $default) {
282
-            return 'INF';
283
-        }
284
-
285
-        if (\is_string($default)) {
286
-            $default = OutputFormatter::escape($default);
287
-        } elseif (\is_array($default)) {
288
-            foreach ($default as $key => $value) {
289
-                if (\is_string($value)) {
290
-                    $default[$key] = OutputFormatter::escape($value);
291
-                }
292
-            }
293
-        }
294
-
295
-        return str_replace('\\\\', '\\', json_encode($default, \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE));
296
-    }
297
-
298
-    /**
299
-     * @param array<Command|string> $commands
300
-     */
301
-    private function getColumnWidth(array $commands): int
302
-    {
303
-        $widths = [];
304
-
305
-        foreach ($commands as $command) {
306
-            if ($command instanceof Command) {
307
-                $widths[] = Helper::width($command->getName());
308
-                foreach ($command->getAliases() as $alias) {
309
-                    $widths[] = Helper::width($alias);
310
-                }
311
-            } else {
312
-                $widths[] = Helper::width($command);
313
-            }
314
-        }
315
-
316
-        return $widths ? max($widths) + 2 : 0;
317
-    }
318
-
319
-    /**
320
-     * @param InputOption[] $options
321
-     */
322
-    private function calculateTotalWidthForOptions(array $options): int
323
-    {
324
-        $totalWidth = 0;
325
-        foreach ($options as $option) {
326
-            // "-" + shortcut + ", --" + name
327
-            $nameLength = 1 + max(Helper::width($option->getShortcut()), 1) + 4 + Helper::width($option->getName());
328
-            if ($option->isNegatable()) {
329
-                $nameLength += 6 + Helper::width($option->getName()); // |--no- + name
330
-            } elseif ($option->acceptValue()) {
331
-                $valueLength = 1 + Helper::width($option->getName()); // = + value
332
-                $valueLength += $option->isValueOptional() ? 2 : 0; // [ + ]
333
-
334
-                $nameLength += $valueLength;
335
-            }
336
-            $totalWidth = max($totalWidth, $nameLength);
337
-        }
338
-
339
-        return $totalWidth;
340
-    }
31
+	/**
32
+	 * {@inheritdoc}
33
+	 */
34
+	protected function describeInputArgument(InputArgument $argument, array $options = [])
35
+	{
36
+		if (null !== $argument->getDefault() && (!\is_array($argument->getDefault()) || \count($argument->getDefault()))) {
37
+			$default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($argument->getDefault()));
38
+		} else {
39
+			$default = '';
40
+		}
41
+
42
+		$totalWidth = $options['total_width'] ?? Helper::width($argument->getName());
43
+		$spacingWidth = $totalWidth - \strlen($argument->getName());
44
+
45
+		$this->writeText(sprintf('  <info>%s</info>  %s%s%s',
46
+			$argument->getName(),
47
+			str_repeat(' ', $spacingWidth),
48
+			// + 4 = 2 spaces before <info>, 2 spaces after </info>
49
+			preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $argument->getDescription()),
50
+			$default
51
+		), $options);
52
+	}
53
+
54
+	/**
55
+	 * {@inheritdoc}
56
+	 */
57
+	protected function describeInputOption(InputOption $option, array $options = [])
58
+	{
59
+		if ($option->acceptValue() && null !== $option->getDefault() && (!\is_array($option->getDefault()) || \count($option->getDefault()))) {
60
+			$default = sprintf('<comment> [default: %s]</comment>', $this->formatDefaultValue($option->getDefault()));
61
+		} else {
62
+			$default = '';
63
+		}
64
+
65
+		$value = '';
66
+		if ($option->acceptValue()) {
67
+			$value = '='.strtoupper($option->getName());
68
+
69
+			if ($option->isValueOptional()) {
70
+				$value = '['.$value.']';
71
+			}
72
+		}
73
+
74
+		$totalWidth = $options['total_width'] ?? $this->calculateTotalWidthForOptions([$option]);
75
+		$synopsis = sprintf('%s%s',
76
+			$option->getShortcut() ? sprintf('-%s, ', $option->getShortcut()) : '    ',
77
+			sprintf($option->isNegatable() ? '--%1$s|--no-%1$s' : '--%1$s%2$s', $option->getName(), $value)
78
+		);
79
+
80
+		$spacingWidth = $totalWidth - Helper::width($synopsis);
81
+
82
+		$this->writeText(sprintf('  <info>%s</info>  %s%s%s%s',
83
+			$synopsis,
84
+			str_repeat(' ', $spacingWidth),
85
+			// + 4 = 2 spaces before <info>, 2 spaces after </info>
86
+			preg_replace('/\s*[\r\n]\s*/', "\n".str_repeat(' ', $totalWidth + 4), $option->getDescription()),
87
+			$default,
88
+			$option->isArray() ? '<comment> (multiple values allowed)</comment>' : ''
89
+		), $options);
90
+	}
91
+
92
+	/**
93
+	 * {@inheritdoc}
94
+	 */
95
+	protected function describeInputDefinition(InputDefinition $definition, array $options = [])
96
+	{
97
+		$totalWidth = $this->calculateTotalWidthForOptions($definition->getOptions());
98
+		foreach ($definition->getArguments() as $argument) {
99
+			$totalWidth = max($totalWidth, Helper::width($argument->getName()));
100
+		}
101
+
102
+		if ($definition->getArguments()) {
103
+			$this->writeText('<comment>Arguments:</comment>', $options);
104
+			$this->writeText("\n");
105
+			foreach ($definition->getArguments() as $argument) {
106
+				$this->describeInputArgument($argument, array_merge($options, ['total_width' => $totalWidth]));
107
+				$this->writeText("\n");
108
+			}
109
+		}
110
+
111
+		if ($definition->getArguments() && $definition->getOptions()) {
112
+			$this->writeText("\n");
113
+		}
114
+
115
+		if ($definition->getOptions()) {
116
+			$laterOptions = [];
117
+
118
+			$this->writeText('<comment>Options:</comment>', $options);
119
+			foreach ($definition->getOptions() as $option) {
120
+				if (\strlen($option->getShortcut() ?? '') > 1) {
121
+					$laterOptions[] = $option;
122
+					continue;
123
+				}
124
+				$this->writeText("\n");
125
+				$this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth]));
126
+			}
127
+			foreach ($laterOptions as $option) {
128
+				$this->writeText("\n");
129
+				$this->describeInputOption($option, array_merge($options, ['total_width' => $totalWidth]));
130
+			}
131
+		}
132
+	}
133
+
134
+	/**
135
+	 * {@inheritdoc}
136
+	 */
137
+	protected function describeCommand(Command $command, array $options = [])
138
+	{
139
+		$command->mergeApplicationDefinition(false);
140
+
141
+		if ($description = $command->getDescription()) {
142
+			$this->writeText('<comment>Description:</comment>', $options);
143
+			$this->writeText("\n");
144
+			$this->writeText('  '.$description);
145
+			$this->writeText("\n\n");
146
+		}
147
+
148
+		$this->writeText('<comment>Usage:</comment>', $options);
149
+		foreach (array_merge([$command->getSynopsis(true)], $command->getAliases(), $command->getUsages()) as $usage) {
150
+			$this->writeText("\n");
151
+			$this->writeText('  '.OutputFormatter::escape($usage), $options);
152
+		}
153
+		$this->writeText("\n");
154
+
155
+		$definition = $command->getDefinition();
156
+		if ($definition->getOptions() || $definition->getArguments()) {
157
+			$this->writeText("\n");
158
+			$this->describeInputDefinition($definition, $options);
159
+			$this->writeText("\n");
160
+		}
161
+
162
+		$help = $command->getProcessedHelp();
163
+		if ($help && $help !== $description) {
164
+			$this->writeText("\n");
165
+			$this->writeText('<comment>Help:</comment>', $options);
166
+			$this->writeText("\n");
167
+			$this->writeText('  '.str_replace("\n", "\n  ", $help), $options);
168
+			$this->writeText("\n");
169
+		}
170
+	}
171
+
172
+	/**
173
+	 * {@inheritdoc}
174
+	 */
175
+	protected function describeApplication(Application $application, array $options = [])
176
+	{
177
+		$describedNamespace = $options['namespace'] ?? null;
178
+		$description = new ApplicationDescription($application, $describedNamespace);
179
+
180
+		if (isset($options['raw_text']) && $options['raw_text']) {
181
+			$width = $this->getColumnWidth($description->getCommands());
182
+
183
+			foreach ($description->getCommands() as $command) {
184
+				$this->writeText(sprintf("%-{$width}s %s", $command->getName(), $command->getDescription()), $options);
185
+				$this->writeText("\n");
186
+			}
187
+		} else {
188
+			if ('' != $help = $application->getHelp()) {
189
+				$this->writeText("$help\n\n", $options);
190
+			}
191
+
192
+			$this->writeText("<comment>Usage:</comment>\n", $options);
193
+			$this->writeText("  command [options] [arguments]\n\n", $options);
194
+
195
+			$this->describeInputDefinition(new InputDefinition($application->getDefinition()->getOptions()), $options);
196
+
197
+			$this->writeText("\n");
198
+			$this->writeText("\n");
199
+
200
+			$commands = $description->getCommands();
201
+			$namespaces = $description->getNamespaces();
202
+			if ($describedNamespace && $namespaces) {
203
+				// make sure all alias commands are included when describing a specific namespace
204
+				$describedNamespaceInfo = reset($namespaces);
205
+				foreach ($describedNamespaceInfo['commands'] as $name) {
206
+					$commands[$name] = $description->getCommand($name);
207
+				}
208
+			}
209
+
210
+			// calculate max. width based on available commands per namespace
211
+			$width = $this->getColumnWidth(array_merge(...array_values(array_map(function ($namespace) use ($commands) {
212
+				return array_intersect($namespace['commands'], array_keys($commands));
213
+			}, array_values($namespaces)))));
214
+
215
+			if ($describedNamespace) {
216
+				$this->writeText(sprintf('<comment>Available commands for the "%s" namespace:</comment>', $describedNamespace), $options);
217
+			} else {
218
+				$this->writeText('<comment>Available commands:</comment>', $options);
219
+			}
220
+
221
+			foreach ($namespaces as $namespace) {
222
+				$namespace['commands'] = array_filter($namespace['commands'], function ($name) use ($commands) {
223
+					return isset($commands[$name]);
224
+				});
225
+
226
+				if (!$namespace['commands']) {
227
+					continue;
228
+				}
229
+
230
+				if (!$describedNamespace && ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) {
231
+					$this->writeText("\n");
232
+					$this->writeText(' <comment>'.$namespace['id'].'</comment>', $options);
233
+				}
234
+
235
+				foreach ($namespace['commands'] as $name) {
236
+					$this->writeText("\n");
237
+					$spacingWidth = $width - Helper::width($name);
238
+					$command = $commands[$name];
239
+					$commandAliases = $name === $command->getName() ? $this->getCommandAliasesText($command) : '';
240
+					$this->writeText(sprintf('  <info>%s</info>%s%s', $name, str_repeat(' ', $spacingWidth), $commandAliases.$command->getDescription()), $options);
241
+				}
242
+			}
243
+
244
+			$this->writeText("\n");
245
+		}
246
+	}
247
+
248
+	/**
249
+	 * {@inheritdoc}
250
+	 */
251
+	private function writeText(string $content, array $options = [])
252
+	{
253
+		$this->write(
254
+			isset($options['raw_text']) && $options['raw_text'] ? strip_tags($content) : $content,
255
+			isset($options['raw_output']) ? !$options['raw_output'] : true
256
+		);
257
+	}
258
+
259
+	/**
260
+	 * Formats command aliases to show them in the command description.
261
+	 */
262
+	private function getCommandAliasesText(Command $command): string
263
+	{
264
+		$text = '';
265
+		$aliases = $command->getAliases();
266
+
267
+		if ($aliases) {
268
+			$text = '['.implode('|', $aliases).'] ';
269
+		}
270
+
271
+		return $text;
272
+	}
273
+
274
+	/**
275
+	 * Formats input option/argument default value.
276
+	 *
277
+	 * @param mixed $default
278
+	 */
279
+	private function formatDefaultValue($default): string
280
+	{
281
+		if (\INF === $default) {
282
+			return 'INF';
283
+		}
284
+
285
+		if (\is_string($default)) {
286
+			$default = OutputFormatter::escape($default);
287
+		} elseif (\is_array($default)) {
288
+			foreach ($default as $key => $value) {
289
+				if (\is_string($value)) {
290
+					$default[$key] = OutputFormatter::escape($value);
291
+				}
292
+			}
293
+		}
294
+
295
+		return str_replace('\\\\', '\\', json_encode($default, \JSON_UNESCAPED_SLASHES | \JSON_UNESCAPED_UNICODE));
296
+	}
297
+
298
+	/**
299
+	 * @param array<Command|string> $commands
300
+	 */
301
+	private function getColumnWidth(array $commands): int
302
+	{
303
+		$widths = [];
304
+
305
+		foreach ($commands as $command) {
306
+			if ($command instanceof Command) {
307
+				$widths[] = Helper::width($command->getName());
308
+				foreach ($command->getAliases() as $alias) {
309
+					$widths[] = Helper::width($alias);
310
+				}
311
+			} else {
312
+				$widths[] = Helper::width($command);
313
+			}
314
+		}
315
+
316
+		return $widths ? max($widths) + 2 : 0;
317
+	}
318
+
319
+	/**
320
+	 * @param InputOption[] $options
321
+	 */
322
+	private function calculateTotalWidthForOptions(array $options): int
323
+	{
324
+		$totalWidth = 0;
325
+		foreach ($options as $option) {
326
+			// "-" + shortcut + ", --" + name
327
+			$nameLength = 1 + max(Helper::width($option->getShortcut()), 1) + 4 + Helper::width($option->getName());
328
+			if ($option->isNegatable()) {
329
+				$nameLength += 6 + Helper::width($option->getName()); // |--no- + name
330
+			} elseif ($option->acceptValue()) {
331
+				$valueLength = 1 + Helper::width($option->getName()); // = + value
332
+				$valueLength += $option->isValueOptional() ? 2 : 0; // [ + ]
333
+
334
+				$nameLength += $valueLength;
335
+			}
336
+			$totalWidth = max($totalWidth, $nameLength);
337
+		}
338
+
339
+		return $totalWidth;
340
+	}
341 341
 }
Please login to merge, or discard this patch.
vendor/symfony/console/Descriptor/MarkdownDescriptor.php 1 patch
Indentation   +175 added lines, -175 removed lines patch added patch discarded remove patch
@@ -28,179 +28,179 @@
 block discarded – undo
28 28
  */
29 29
 class MarkdownDescriptor extends Descriptor
30 30
 {
31
-    /**
32
-     * {@inheritdoc}
33
-     */
34
-    public function describe(OutputInterface $output, object $object, array $options = [])
35
-    {
36
-        $decorated = $output->isDecorated();
37
-        $output->setDecorated(false);
38
-
39
-        parent::describe($output, $object, $options);
40
-
41
-        $output->setDecorated($decorated);
42
-    }
43
-
44
-    /**
45
-     * {@inheritdoc}
46
-     */
47
-    protected function write(string $content, bool $decorated = true)
48
-    {
49
-        parent::write($content, $decorated);
50
-    }
51
-
52
-    /**
53
-     * {@inheritdoc}
54
-     */
55
-    protected function describeInputArgument(InputArgument $argument, array $options = [])
56
-    {
57
-        $this->write(
58
-            '#### `'.($argument->getName() ?: '<none>')."`\n\n"
59
-            .($argument->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n", $argument->getDescription())."\n\n" : '')
60
-            .'* Is required: '.($argument->isRequired() ? 'yes' : 'no')."\n"
61
-            .'* Is array: '.($argument->isArray() ? 'yes' : 'no')."\n"
62
-            .'* Default: `'.str_replace("\n", '', var_export($argument->getDefault(), true)).'`'
63
-        );
64
-    }
65
-
66
-    /**
67
-     * {@inheritdoc}
68
-     */
69
-    protected function describeInputOption(InputOption $option, array $options = [])
70
-    {
71
-        $name = '--'.$option->getName();
72
-        if ($option->isNegatable()) {
73
-            $name .= '|--no-'.$option->getName();
74
-        }
75
-        if ($option->getShortcut()) {
76
-            $name .= '|-'.str_replace('|', '|-', $option->getShortcut()).'';
77
-        }
78
-
79
-        $this->write(
80
-            '#### `'.$name.'`'."\n\n"
81
-            .($option->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n", $option->getDescription())."\n\n" : '')
82
-            .'* Accept value: '.($option->acceptValue() ? 'yes' : 'no')."\n"
83
-            .'* Is value required: '.($option->isValueRequired() ? 'yes' : 'no')."\n"
84
-            .'* Is multiple: '.($option->isArray() ? 'yes' : 'no')."\n"
85
-            .'* Is negatable: '.($option->isNegatable() ? 'yes' : 'no')."\n"
86
-            .'* Default: `'.str_replace("\n", '', var_export($option->getDefault(), true)).'`'
87
-        );
88
-    }
89
-
90
-    /**
91
-     * {@inheritdoc}
92
-     */
93
-    protected function describeInputDefinition(InputDefinition $definition, array $options = [])
94
-    {
95
-        if ($showArguments = \count($definition->getArguments()) > 0) {
96
-            $this->write('### Arguments');
97
-            foreach ($definition->getArguments() as $argument) {
98
-                $this->write("\n\n");
99
-                if (null !== $describeInputArgument = $this->describeInputArgument($argument)) {
100
-                    $this->write($describeInputArgument);
101
-                }
102
-            }
103
-        }
104
-
105
-        if (\count($definition->getOptions()) > 0) {
106
-            if ($showArguments) {
107
-                $this->write("\n\n");
108
-            }
109
-
110
-            $this->write('### Options');
111
-            foreach ($definition->getOptions() as $option) {
112
-                $this->write("\n\n");
113
-                if (null !== $describeInputOption = $this->describeInputOption($option)) {
114
-                    $this->write($describeInputOption);
115
-                }
116
-            }
117
-        }
118
-    }
119
-
120
-    /**
121
-     * {@inheritdoc}
122
-     */
123
-    protected function describeCommand(Command $command, array $options = [])
124
-    {
125
-        if ($options['short'] ?? false) {
126
-            $this->write(
127
-                '`'.$command->getName()."`\n"
128
-                .str_repeat('-', Helper::width($command->getName()) + 2)."\n\n"
129
-                .($command->getDescription() ? $command->getDescription()."\n\n" : '')
130
-                .'### Usage'."\n\n"
131
-                .array_reduce($command->getAliases(), function ($carry, $usage) {
132
-                    return $carry.'* `'.$usage.'`'."\n";
133
-                })
134
-            );
135
-
136
-            return;
137
-        }
138
-
139
-        $command->mergeApplicationDefinition(false);
140
-
141
-        $this->write(
142
-            '`'.$command->getName()."`\n"
143
-            .str_repeat('-', Helper::width($command->getName()) + 2)."\n\n"
144
-            .($command->getDescription() ? $command->getDescription()."\n\n" : '')
145
-            .'### Usage'."\n\n"
146
-            .array_reduce(array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()), function ($carry, $usage) {
147
-                return $carry.'* `'.$usage.'`'."\n";
148
-            })
149
-        );
150
-
151
-        if ($help = $command->getProcessedHelp()) {
152
-            $this->write("\n");
153
-            $this->write($help);
154
-        }
155
-
156
-        $definition = $command->getDefinition();
157
-        if ($definition->getOptions() || $definition->getArguments()) {
158
-            $this->write("\n\n");
159
-            $this->describeInputDefinition($definition);
160
-        }
161
-    }
162
-
163
-    /**
164
-     * {@inheritdoc}
165
-     */
166
-    protected function describeApplication(Application $application, array $options = [])
167
-    {
168
-        $describedNamespace = $options['namespace'] ?? null;
169
-        $description = new ApplicationDescription($application, $describedNamespace);
170
-        $title = $this->getApplicationTitle($application);
171
-
172
-        $this->write($title."\n".str_repeat('=', Helper::width($title)));
173
-
174
-        foreach ($description->getNamespaces() as $namespace) {
175
-            if (ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) {
176
-                $this->write("\n\n");
177
-                $this->write('**'.$namespace['id'].':**');
178
-            }
179
-
180
-            $this->write("\n\n");
181
-            $this->write(implode("\n", array_map(function ($commandName) use ($description) {
182
-                return sprintf('* [`%s`](#%s)', $commandName, str_replace(':', '', $description->getCommand($commandName)->getName()));
183
-            }, $namespace['commands'])));
184
-        }
185
-
186
-        foreach ($description->getCommands() as $command) {
187
-            $this->write("\n\n");
188
-            if (null !== $describeCommand = $this->describeCommand($command, $options)) {
189
-                $this->write($describeCommand);
190
-            }
191
-        }
192
-    }
193
-
194
-    private function getApplicationTitle(Application $application): string
195
-    {
196
-        if ('UNKNOWN' !== $application->getName()) {
197
-            if ('UNKNOWN' !== $application->getVersion()) {
198
-                return sprintf('%s %s', $application->getName(), $application->getVersion());
199
-            }
200
-
201
-            return $application->getName();
202
-        }
203
-
204
-        return 'Console Tool';
205
-    }
31
+	/**
32
+	 * {@inheritdoc}
33
+	 */
34
+	public function describe(OutputInterface $output, object $object, array $options = [])
35
+	{
36
+		$decorated = $output->isDecorated();
37
+		$output->setDecorated(false);
38
+
39
+		parent::describe($output, $object, $options);
40
+
41
+		$output->setDecorated($decorated);
42
+	}
43
+
44
+	/**
45
+	 * {@inheritdoc}
46
+	 */
47
+	protected function write(string $content, bool $decorated = true)
48
+	{
49
+		parent::write($content, $decorated);
50
+	}
51
+
52
+	/**
53
+	 * {@inheritdoc}
54
+	 */
55
+	protected function describeInputArgument(InputArgument $argument, array $options = [])
56
+	{
57
+		$this->write(
58
+			'#### `'.($argument->getName() ?: '<none>')."`\n\n"
59
+			.($argument->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n", $argument->getDescription())."\n\n" : '')
60
+			.'* Is required: '.($argument->isRequired() ? 'yes' : 'no')."\n"
61
+			.'* Is array: '.($argument->isArray() ? 'yes' : 'no')."\n"
62
+			.'* Default: `'.str_replace("\n", '', var_export($argument->getDefault(), true)).'`'
63
+		);
64
+	}
65
+
66
+	/**
67
+	 * {@inheritdoc}
68
+	 */
69
+	protected function describeInputOption(InputOption $option, array $options = [])
70
+	{
71
+		$name = '--'.$option->getName();
72
+		if ($option->isNegatable()) {
73
+			$name .= '|--no-'.$option->getName();
74
+		}
75
+		if ($option->getShortcut()) {
76
+			$name .= '|-'.str_replace('|', '|-', $option->getShortcut()).'';
77
+		}
78
+
79
+		$this->write(
80
+			'#### `'.$name.'`'."\n\n"
81
+			.($option->getDescription() ? preg_replace('/\s*[\r\n]\s*/', "\n", $option->getDescription())."\n\n" : '')
82
+			.'* Accept value: '.($option->acceptValue() ? 'yes' : 'no')."\n"
83
+			.'* Is value required: '.($option->isValueRequired() ? 'yes' : 'no')."\n"
84
+			.'* Is multiple: '.($option->isArray() ? 'yes' : 'no')."\n"
85
+			.'* Is negatable: '.($option->isNegatable() ? 'yes' : 'no')."\n"
86
+			.'* Default: `'.str_replace("\n", '', var_export($option->getDefault(), true)).'`'
87
+		);
88
+	}
89
+
90
+	/**
91
+	 * {@inheritdoc}
92
+	 */
93
+	protected function describeInputDefinition(InputDefinition $definition, array $options = [])
94
+	{
95
+		if ($showArguments = \count($definition->getArguments()) > 0) {
96
+			$this->write('### Arguments');
97
+			foreach ($definition->getArguments() as $argument) {
98
+				$this->write("\n\n");
99
+				if (null !== $describeInputArgument = $this->describeInputArgument($argument)) {
100
+					$this->write($describeInputArgument);
101
+				}
102
+			}
103
+		}
104
+
105
+		if (\count($definition->getOptions()) > 0) {
106
+			if ($showArguments) {
107
+				$this->write("\n\n");
108
+			}
109
+
110
+			$this->write('### Options');
111
+			foreach ($definition->getOptions() as $option) {
112
+				$this->write("\n\n");
113
+				if (null !== $describeInputOption = $this->describeInputOption($option)) {
114
+					$this->write($describeInputOption);
115
+				}
116
+			}
117
+		}
118
+	}
119
+
120
+	/**
121
+	 * {@inheritdoc}
122
+	 */
123
+	protected function describeCommand(Command $command, array $options = [])
124
+	{
125
+		if ($options['short'] ?? false) {
126
+			$this->write(
127
+				'`'.$command->getName()."`\n"
128
+				.str_repeat('-', Helper::width($command->getName()) + 2)."\n\n"
129
+				.($command->getDescription() ? $command->getDescription()."\n\n" : '')
130
+				.'### Usage'."\n\n"
131
+				.array_reduce($command->getAliases(), function ($carry, $usage) {
132
+					return $carry.'* `'.$usage.'`'."\n";
133
+				})
134
+			);
135
+
136
+			return;
137
+		}
138
+
139
+		$command->mergeApplicationDefinition(false);
140
+
141
+		$this->write(
142
+			'`'.$command->getName()."`\n"
143
+			.str_repeat('-', Helper::width($command->getName()) + 2)."\n\n"
144
+			.($command->getDescription() ? $command->getDescription()."\n\n" : '')
145
+			.'### Usage'."\n\n"
146
+			.array_reduce(array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()), function ($carry, $usage) {
147
+				return $carry.'* `'.$usage.'`'."\n";
148
+			})
149
+		);
150
+
151
+		if ($help = $command->getProcessedHelp()) {
152
+			$this->write("\n");
153
+			$this->write($help);
154
+		}
155
+
156
+		$definition = $command->getDefinition();
157
+		if ($definition->getOptions() || $definition->getArguments()) {
158
+			$this->write("\n\n");
159
+			$this->describeInputDefinition($definition);
160
+		}
161
+	}
162
+
163
+	/**
164
+	 * {@inheritdoc}
165
+	 */
166
+	protected function describeApplication(Application $application, array $options = [])
167
+	{
168
+		$describedNamespace = $options['namespace'] ?? null;
169
+		$description = new ApplicationDescription($application, $describedNamespace);
170
+		$title = $this->getApplicationTitle($application);
171
+
172
+		$this->write($title."\n".str_repeat('=', Helper::width($title)));
173
+
174
+		foreach ($description->getNamespaces() as $namespace) {
175
+			if (ApplicationDescription::GLOBAL_NAMESPACE !== $namespace['id']) {
176
+				$this->write("\n\n");
177
+				$this->write('**'.$namespace['id'].':**');
178
+			}
179
+
180
+			$this->write("\n\n");
181
+			$this->write(implode("\n", array_map(function ($commandName) use ($description) {
182
+				return sprintf('* [`%s`](#%s)', $commandName, str_replace(':', '', $description->getCommand($commandName)->getName()));
183
+			}, $namespace['commands'])));
184
+		}
185
+
186
+		foreach ($description->getCommands() as $command) {
187
+			$this->write("\n\n");
188
+			if (null !== $describeCommand = $this->describeCommand($command, $options)) {
189
+				$this->write($describeCommand);
190
+			}
191
+		}
192
+	}
193
+
194
+	private function getApplicationTitle(Application $application): string
195
+	{
196
+		if ('UNKNOWN' !== $application->getName()) {
197
+			if ('UNKNOWN' !== $application->getVersion()) {
198
+				return sprintf('%s %s', $application->getName(), $application->getVersion());
199
+			}
200
+
201
+			return $application->getName();
202
+		}
203
+
204
+		return 'Console Tool';
205
+	}
206 206
 }
Please login to merge, or discard this patch.
vendor/symfony/console/Descriptor/Descriptor.php 1 patch
Indentation   +57 added lines, -57 removed lines patch added patch discarded remove patch
@@ -26,69 +26,69 @@
 block discarded – undo
26 26
  */
27 27
 abstract class Descriptor implements DescriptorInterface
28 28
 {
29
-    /**
30
-     * @var OutputInterface
31
-     */
32
-    protected $output;
29
+	/**
30
+	 * @var OutputInterface
31
+	 */
32
+	protected $output;
33 33
 
34
-    /**
35
-     * {@inheritdoc}
36
-     */
37
-    public function describe(OutputInterface $output, object $object, array $options = [])
38
-    {
39
-        $this->output = $output;
34
+	/**
35
+	 * {@inheritdoc}
36
+	 */
37
+	public function describe(OutputInterface $output, object $object, array $options = [])
38
+	{
39
+		$this->output = $output;
40 40
 
41
-        switch (true) {
42
-            case $object instanceof InputArgument:
43
-                $this->describeInputArgument($object, $options);
44
-                break;
45
-            case $object instanceof InputOption:
46
-                $this->describeInputOption($object, $options);
47
-                break;
48
-            case $object instanceof InputDefinition:
49
-                $this->describeInputDefinition($object, $options);
50
-                break;
51
-            case $object instanceof Command:
52
-                $this->describeCommand($object, $options);
53
-                break;
54
-            case $object instanceof Application:
55
-                $this->describeApplication($object, $options);
56
-                break;
57
-            default:
58
-                throw new InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_debug_type($object)));
59
-        }
60
-    }
41
+		switch (true) {
42
+			case $object instanceof InputArgument:
43
+				$this->describeInputArgument($object, $options);
44
+				break;
45
+			case $object instanceof InputOption:
46
+				$this->describeInputOption($object, $options);
47
+				break;
48
+			case $object instanceof InputDefinition:
49
+				$this->describeInputDefinition($object, $options);
50
+				break;
51
+			case $object instanceof Command:
52
+				$this->describeCommand($object, $options);
53
+				break;
54
+			case $object instanceof Application:
55
+				$this->describeApplication($object, $options);
56
+				break;
57
+			default:
58
+				throw new InvalidArgumentException(sprintf('Object of type "%s" is not describable.', get_debug_type($object)));
59
+		}
60
+	}
61 61
 
62
-    /**
63
-     * Writes content to output.
64
-     */
65
-    protected function write(string $content, bool $decorated = false)
66
-    {
67
-        $this->output->write($content, false, $decorated ? OutputInterface::OUTPUT_NORMAL : OutputInterface::OUTPUT_RAW);
68
-    }
62
+	/**
63
+	 * Writes content to output.
64
+	 */
65
+	protected function write(string $content, bool $decorated = false)
66
+	{
67
+		$this->output->write($content, false, $decorated ? OutputInterface::OUTPUT_NORMAL : OutputInterface::OUTPUT_RAW);
68
+	}
69 69
 
70
-    /**
71
-     * Describes an InputArgument instance.
72
-     */
73
-    abstract protected function describeInputArgument(InputArgument $argument, array $options = []);
70
+	/**
71
+	 * Describes an InputArgument instance.
72
+	 */
73
+	abstract protected function describeInputArgument(InputArgument $argument, array $options = []);
74 74
 
75
-    /**
76
-     * Describes an InputOption instance.
77
-     */
78
-    abstract protected function describeInputOption(InputOption $option, array $options = []);
75
+	/**
76
+	 * Describes an InputOption instance.
77
+	 */
78
+	abstract protected function describeInputOption(InputOption $option, array $options = []);
79 79
 
80
-    /**
81
-     * Describes an InputDefinition instance.
82
-     */
83
-    abstract protected function describeInputDefinition(InputDefinition $definition, array $options = []);
80
+	/**
81
+	 * Describes an InputDefinition instance.
82
+	 */
83
+	abstract protected function describeInputDefinition(InputDefinition $definition, array $options = []);
84 84
 
85
-    /**
86
-     * Describes a Command instance.
87
-     */
88
-    abstract protected function describeCommand(Command $command, array $options = []);
85
+	/**
86
+	 * Describes a Command instance.
87
+	 */
88
+	abstract protected function describeCommand(Command $command, array $options = []);
89 89
 
90
-    /**
91
-     * Describes an Application instance.
92
-     */
93
-    abstract protected function describeApplication(Application $application, array $options = []);
90
+	/**
91
+	 * Describes an Application instance.
92
+	 */
93
+	abstract protected function describeApplication(Application $application, array $options = []);
94 94
 }
Please login to merge, or discard this patch.
vendor/symfony/console/Descriptor/XmlDescriptor.php 1 patch
Indentation   +218 added lines, -218 removed lines patch added patch discarded remove patch
@@ -26,222 +26,222 @@
 block discarded – undo
26 26
  */
27 27
 class XmlDescriptor extends Descriptor
28 28
 {
29
-    public function getInputDefinitionDocument(InputDefinition $definition): \DOMDocument
30
-    {
31
-        $dom = new \DOMDocument('1.0', 'UTF-8');
32
-        $dom->appendChild($definitionXML = $dom->createElement('definition'));
33
-
34
-        $definitionXML->appendChild($argumentsXML = $dom->createElement('arguments'));
35
-        foreach ($definition->getArguments() as $argument) {
36
-            $this->appendDocument($argumentsXML, $this->getInputArgumentDocument($argument));
37
-        }
38
-
39
-        $definitionXML->appendChild($optionsXML = $dom->createElement('options'));
40
-        foreach ($definition->getOptions() as $option) {
41
-            $this->appendDocument($optionsXML, $this->getInputOptionDocument($option));
42
-        }
43
-
44
-        return $dom;
45
-    }
46
-
47
-    public function getCommandDocument(Command $command, bool $short = false): \DOMDocument
48
-    {
49
-        $dom = new \DOMDocument('1.0', 'UTF-8');
50
-        $dom->appendChild($commandXML = $dom->createElement('command'));
51
-
52
-        $commandXML->setAttribute('id', $command->getName());
53
-        $commandXML->setAttribute('name', $command->getName());
54
-        $commandXML->setAttribute('hidden', $command->isHidden() ? 1 : 0);
55
-
56
-        $commandXML->appendChild($usagesXML = $dom->createElement('usages'));
57
-
58
-        $commandXML->appendChild($descriptionXML = $dom->createElement('description'));
59
-        $descriptionXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getDescription())));
60
-
61
-        if ($short) {
62
-            foreach ($command->getAliases() as $usage) {
63
-                $usagesXML->appendChild($dom->createElement('usage', $usage));
64
-            }
65
-        } else {
66
-            $command->mergeApplicationDefinition(false);
67
-
68
-            foreach (array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()) as $usage) {
69
-                $usagesXML->appendChild($dom->createElement('usage', $usage));
70
-            }
71
-
72
-            $commandXML->appendChild($helpXML = $dom->createElement('help'));
73
-            $helpXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getProcessedHelp())));
74
-
75
-            $definitionXML = $this->getInputDefinitionDocument($command->getDefinition());
76
-            $this->appendDocument($commandXML, $definitionXML->getElementsByTagName('definition')->item(0));
77
-        }
78
-
79
-        return $dom;
80
-    }
81
-
82
-    public function getApplicationDocument(Application $application, string $namespace = null, bool $short = false): \DOMDocument
83
-    {
84
-        $dom = new \DOMDocument('1.0', 'UTF-8');
85
-        $dom->appendChild($rootXml = $dom->createElement('symfony'));
86
-
87
-        if ('UNKNOWN' !== $application->getName()) {
88
-            $rootXml->setAttribute('name', $application->getName());
89
-            if ('UNKNOWN' !== $application->getVersion()) {
90
-                $rootXml->setAttribute('version', $application->getVersion());
91
-            }
92
-        }
93
-
94
-        $rootXml->appendChild($commandsXML = $dom->createElement('commands'));
95
-
96
-        $description = new ApplicationDescription($application, $namespace, true);
97
-
98
-        if ($namespace) {
99
-            $commandsXML->setAttribute('namespace', $namespace);
100
-        }
101
-
102
-        foreach ($description->getCommands() as $command) {
103
-            $this->appendDocument($commandsXML, $this->getCommandDocument($command, $short));
104
-        }
105
-
106
-        if (!$namespace) {
107
-            $rootXml->appendChild($namespacesXML = $dom->createElement('namespaces'));
108
-
109
-            foreach ($description->getNamespaces() as $namespaceDescription) {
110
-                $namespacesXML->appendChild($namespaceArrayXML = $dom->createElement('namespace'));
111
-                $namespaceArrayXML->setAttribute('id', $namespaceDescription['id']);
112
-
113
-                foreach ($namespaceDescription['commands'] as $name) {
114
-                    $namespaceArrayXML->appendChild($commandXML = $dom->createElement('command'));
115
-                    $commandXML->appendChild($dom->createTextNode($name));
116
-                }
117
-            }
118
-        }
119
-
120
-        return $dom;
121
-    }
122
-
123
-    /**
124
-     * {@inheritdoc}
125
-     */
126
-    protected function describeInputArgument(InputArgument $argument, array $options = [])
127
-    {
128
-        $this->writeDocument($this->getInputArgumentDocument($argument));
129
-    }
130
-
131
-    /**
132
-     * {@inheritdoc}
133
-     */
134
-    protected function describeInputOption(InputOption $option, array $options = [])
135
-    {
136
-        $this->writeDocument($this->getInputOptionDocument($option));
137
-    }
138
-
139
-    /**
140
-     * {@inheritdoc}
141
-     */
142
-    protected function describeInputDefinition(InputDefinition $definition, array $options = [])
143
-    {
144
-        $this->writeDocument($this->getInputDefinitionDocument($definition));
145
-    }
146
-
147
-    /**
148
-     * {@inheritdoc}
149
-     */
150
-    protected function describeCommand(Command $command, array $options = [])
151
-    {
152
-        $this->writeDocument($this->getCommandDocument($command, $options['short'] ?? false));
153
-    }
154
-
155
-    /**
156
-     * {@inheritdoc}
157
-     */
158
-    protected function describeApplication(Application $application, array $options = [])
159
-    {
160
-        $this->writeDocument($this->getApplicationDocument($application, $options['namespace'] ?? null, $options['short'] ?? false));
161
-    }
162
-
163
-    /**
164
-     * Appends document children to parent node.
165
-     */
166
-    private function appendDocument(\DOMNode $parentNode, \DOMNode $importedParent)
167
-    {
168
-        foreach ($importedParent->childNodes as $childNode) {
169
-            $parentNode->appendChild($parentNode->ownerDocument->importNode($childNode, true));
170
-        }
171
-    }
172
-
173
-    /**
174
-     * Writes DOM document.
175
-     */
176
-    private function writeDocument(\DOMDocument $dom)
177
-    {
178
-        $dom->formatOutput = true;
179
-        $this->write($dom->saveXML());
180
-    }
181
-
182
-    private function getInputArgumentDocument(InputArgument $argument): \DOMDocument
183
-    {
184
-        $dom = new \DOMDocument('1.0', 'UTF-8');
185
-
186
-        $dom->appendChild($objectXML = $dom->createElement('argument'));
187
-        $objectXML->setAttribute('name', $argument->getName());
188
-        $objectXML->setAttribute('is_required', $argument->isRequired() ? 1 : 0);
189
-        $objectXML->setAttribute('is_array', $argument->isArray() ? 1 : 0);
190
-        $objectXML->appendChild($descriptionXML = $dom->createElement('description'));
191
-        $descriptionXML->appendChild($dom->createTextNode($argument->getDescription()));
192
-
193
-        $objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
194
-        $defaults = \is_array($argument->getDefault()) ? $argument->getDefault() : (\is_bool($argument->getDefault()) ? [var_export($argument->getDefault(), true)] : ($argument->getDefault() ? [$argument->getDefault()] : []));
195
-        foreach ($defaults as $default) {
196
-            $defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
197
-            $defaultXML->appendChild($dom->createTextNode($default));
198
-        }
199
-
200
-        return $dom;
201
-    }
202
-
203
-    private function getInputOptionDocument(InputOption $option): \DOMDocument
204
-    {
205
-        $dom = new \DOMDocument('1.0', 'UTF-8');
206
-
207
-        $dom->appendChild($objectXML = $dom->createElement('option'));
208
-        $objectXML->setAttribute('name', '--'.$option->getName());
209
-        $pos = strpos($option->getShortcut() ?? '', '|');
210
-        if (false !== $pos) {
211
-            $objectXML->setAttribute('shortcut', '-'.substr($option->getShortcut(), 0, $pos));
212
-            $objectXML->setAttribute('shortcuts', '-'.str_replace('|', '|-', $option->getShortcut()));
213
-        } else {
214
-            $objectXML->setAttribute('shortcut', $option->getShortcut() ? '-'.$option->getShortcut() : '');
215
-        }
216
-        $objectXML->setAttribute('accept_value', $option->acceptValue() ? 1 : 0);
217
-        $objectXML->setAttribute('is_value_required', $option->isValueRequired() ? 1 : 0);
218
-        $objectXML->setAttribute('is_multiple', $option->isArray() ? 1 : 0);
219
-        $objectXML->appendChild($descriptionXML = $dom->createElement('description'));
220
-        $descriptionXML->appendChild($dom->createTextNode($option->getDescription()));
221
-
222
-        if ($option->acceptValue()) {
223
-            $defaults = \is_array($option->getDefault()) ? $option->getDefault() : (\is_bool($option->getDefault()) ? [var_export($option->getDefault(), true)] : ($option->getDefault() ? [$option->getDefault()] : []));
224
-            $objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
225
-
226
-            if (!empty($defaults)) {
227
-                foreach ($defaults as $default) {
228
-                    $defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
229
-                    $defaultXML->appendChild($dom->createTextNode($default));
230
-                }
231
-            }
232
-        }
233
-
234
-        if ($option->isNegatable()) {
235
-            $dom->appendChild($objectXML = $dom->createElement('option'));
236
-            $objectXML->setAttribute('name', '--no-'.$option->getName());
237
-            $objectXML->setAttribute('shortcut', '');
238
-            $objectXML->setAttribute('accept_value', 0);
239
-            $objectXML->setAttribute('is_value_required', 0);
240
-            $objectXML->setAttribute('is_multiple', 0);
241
-            $objectXML->appendChild($descriptionXML = $dom->createElement('description'));
242
-            $descriptionXML->appendChild($dom->createTextNode('Negate the "--'.$option->getName().'" option'));
243
-        }
244
-
245
-        return $dom;
246
-    }
29
+	public function getInputDefinitionDocument(InputDefinition $definition): \DOMDocument
30
+	{
31
+		$dom = new \DOMDocument('1.0', 'UTF-8');
32
+		$dom->appendChild($definitionXML = $dom->createElement('definition'));
33
+
34
+		$definitionXML->appendChild($argumentsXML = $dom->createElement('arguments'));
35
+		foreach ($definition->getArguments() as $argument) {
36
+			$this->appendDocument($argumentsXML, $this->getInputArgumentDocument($argument));
37
+		}
38
+
39
+		$definitionXML->appendChild($optionsXML = $dom->createElement('options'));
40
+		foreach ($definition->getOptions() as $option) {
41
+			$this->appendDocument($optionsXML, $this->getInputOptionDocument($option));
42
+		}
43
+
44
+		return $dom;
45
+	}
46
+
47
+	public function getCommandDocument(Command $command, bool $short = false): \DOMDocument
48
+	{
49
+		$dom = new \DOMDocument('1.0', 'UTF-8');
50
+		$dom->appendChild($commandXML = $dom->createElement('command'));
51
+
52
+		$commandXML->setAttribute('id', $command->getName());
53
+		$commandXML->setAttribute('name', $command->getName());
54
+		$commandXML->setAttribute('hidden', $command->isHidden() ? 1 : 0);
55
+
56
+		$commandXML->appendChild($usagesXML = $dom->createElement('usages'));
57
+
58
+		$commandXML->appendChild($descriptionXML = $dom->createElement('description'));
59
+		$descriptionXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getDescription())));
60
+
61
+		if ($short) {
62
+			foreach ($command->getAliases() as $usage) {
63
+				$usagesXML->appendChild($dom->createElement('usage', $usage));
64
+			}
65
+		} else {
66
+			$command->mergeApplicationDefinition(false);
67
+
68
+			foreach (array_merge([$command->getSynopsis()], $command->getAliases(), $command->getUsages()) as $usage) {
69
+				$usagesXML->appendChild($dom->createElement('usage', $usage));
70
+			}
71
+
72
+			$commandXML->appendChild($helpXML = $dom->createElement('help'));
73
+			$helpXML->appendChild($dom->createTextNode(str_replace("\n", "\n ", $command->getProcessedHelp())));
74
+
75
+			$definitionXML = $this->getInputDefinitionDocument($command->getDefinition());
76
+			$this->appendDocument($commandXML, $definitionXML->getElementsByTagName('definition')->item(0));
77
+		}
78
+
79
+		return $dom;
80
+	}
81
+
82
+	public function getApplicationDocument(Application $application, string $namespace = null, bool $short = false): \DOMDocument
83
+	{
84
+		$dom = new \DOMDocument('1.0', 'UTF-8');
85
+		$dom->appendChild($rootXml = $dom->createElement('symfony'));
86
+
87
+		if ('UNKNOWN' !== $application->getName()) {
88
+			$rootXml->setAttribute('name', $application->getName());
89
+			if ('UNKNOWN' !== $application->getVersion()) {
90
+				$rootXml->setAttribute('version', $application->getVersion());
91
+			}
92
+		}
93
+
94
+		$rootXml->appendChild($commandsXML = $dom->createElement('commands'));
95
+
96
+		$description = new ApplicationDescription($application, $namespace, true);
97
+
98
+		if ($namespace) {
99
+			$commandsXML->setAttribute('namespace', $namespace);
100
+		}
101
+
102
+		foreach ($description->getCommands() as $command) {
103
+			$this->appendDocument($commandsXML, $this->getCommandDocument($command, $short));
104
+		}
105
+
106
+		if (!$namespace) {
107
+			$rootXml->appendChild($namespacesXML = $dom->createElement('namespaces'));
108
+
109
+			foreach ($description->getNamespaces() as $namespaceDescription) {
110
+				$namespacesXML->appendChild($namespaceArrayXML = $dom->createElement('namespace'));
111
+				$namespaceArrayXML->setAttribute('id', $namespaceDescription['id']);
112
+
113
+				foreach ($namespaceDescription['commands'] as $name) {
114
+					$namespaceArrayXML->appendChild($commandXML = $dom->createElement('command'));
115
+					$commandXML->appendChild($dom->createTextNode($name));
116
+				}
117
+			}
118
+		}
119
+
120
+		return $dom;
121
+	}
122
+
123
+	/**
124
+	 * {@inheritdoc}
125
+	 */
126
+	protected function describeInputArgument(InputArgument $argument, array $options = [])
127
+	{
128
+		$this->writeDocument($this->getInputArgumentDocument($argument));
129
+	}
130
+
131
+	/**
132
+	 * {@inheritdoc}
133
+	 */
134
+	protected function describeInputOption(InputOption $option, array $options = [])
135
+	{
136
+		$this->writeDocument($this->getInputOptionDocument($option));
137
+	}
138
+
139
+	/**
140
+	 * {@inheritdoc}
141
+	 */
142
+	protected function describeInputDefinition(InputDefinition $definition, array $options = [])
143
+	{
144
+		$this->writeDocument($this->getInputDefinitionDocument($definition));
145
+	}
146
+
147
+	/**
148
+	 * {@inheritdoc}
149
+	 */
150
+	protected function describeCommand(Command $command, array $options = [])
151
+	{
152
+		$this->writeDocument($this->getCommandDocument($command, $options['short'] ?? false));
153
+	}
154
+
155
+	/**
156
+	 * {@inheritdoc}
157
+	 */
158
+	protected function describeApplication(Application $application, array $options = [])
159
+	{
160
+		$this->writeDocument($this->getApplicationDocument($application, $options['namespace'] ?? null, $options['short'] ?? false));
161
+	}
162
+
163
+	/**
164
+	 * Appends document children to parent node.
165
+	 */
166
+	private function appendDocument(\DOMNode $parentNode, \DOMNode $importedParent)
167
+	{
168
+		foreach ($importedParent->childNodes as $childNode) {
169
+			$parentNode->appendChild($parentNode->ownerDocument->importNode($childNode, true));
170
+		}
171
+	}
172
+
173
+	/**
174
+	 * Writes DOM document.
175
+	 */
176
+	private function writeDocument(\DOMDocument $dom)
177
+	{
178
+		$dom->formatOutput = true;
179
+		$this->write($dom->saveXML());
180
+	}
181
+
182
+	private function getInputArgumentDocument(InputArgument $argument): \DOMDocument
183
+	{
184
+		$dom = new \DOMDocument('1.0', 'UTF-8');
185
+
186
+		$dom->appendChild($objectXML = $dom->createElement('argument'));
187
+		$objectXML->setAttribute('name', $argument->getName());
188
+		$objectXML->setAttribute('is_required', $argument->isRequired() ? 1 : 0);
189
+		$objectXML->setAttribute('is_array', $argument->isArray() ? 1 : 0);
190
+		$objectXML->appendChild($descriptionXML = $dom->createElement('description'));
191
+		$descriptionXML->appendChild($dom->createTextNode($argument->getDescription()));
192
+
193
+		$objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
194
+		$defaults = \is_array($argument->getDefault()) ? $argument->getDefault() : (\is_bool($argument->getDefault()) ? [var_export($argument->getDefault(), true)] : ($argument->getDefault() ? [$argument->getDefault()] : []));
195
+		foreach ($defaults as $default) {
196
+			$defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
197
+			$defaultXML->appendChild($dom->createTextNode($default));
198
+		}
199
+
200
+		return $dom;
201
+	}
202
+
203
+	private function getInputOptionDocument(InputOption $option): \DOMDocument
204
+	{
205
+		$dom = new \DOMDocument('1.0', 'UTF-8');
206
+
207
+		$dom->appendChild($objectXML = $dom->createElement('option'));
208
+		$objectXML->setAttribute('name', '--'.$option->getName());
209
+		$pos = strpos($option->getShortcut() ?? '', '|');
210
+		if (false !== $pos) {
211
+			$objectXML->setAttribute('shortcut', '-'.substr($option->getShortcut(), 0, $pos));
212
+			$objectXML->setAttribute('shortcuts', '-'.str_replace('|', '|-', $option->getShortcut()));
213
+		} else {
214
+			$objectXML->setAttribute('shortcut', $option->getShortcut() ? '-'.$option->getShortcut() : '');
215
+		}
216
+		$objectXML->setAttribute('accept_value', $option->acceptValue() ? 1 : 0);
217
+		$objectXML->setAttribute('is_value_required', $option->isValueRequired() ? 1 : 0);
218
+		$objectXML->setAttribute('is_multiple', $option->isArray() ? 1 : 0);
219
+		$objectXML->appendChild($descriptionXML = $dom->createElement('description'));
220
+		$descriptionXML->appendChild($dom->createTextNode($option->getDescription()));
221
+
222
+		if ($option->acceptValue()) {
223
+			$defaults = \is_array($option->getDefault()) ? $option->getDefault() : (\is_bool($option->getDefault()) ? [var_export($option->getDefault(), true)] : ($option->getDefault() ? [$option->getDefault()] : []));
224
+			$objectXML->appendChild($defaultsXML = $dom->createElement('defaults'));
225
+
226
+			if (!empty($defaults)) {
227
+				foreach ($defaults as $default) {
228
+					$defaultsXML->appendChild($defaultXML = $dom->createElement('default'));
229
+					$defaultXML->appendChild($dom->createTextNode($default));
230
+				}
231
+			}
232
+		}
233
+
234
+		if ($option->isNegatable()) {
235
+			$dom->appendChild($objectXML = $dom->createElement('option'));
236
+			$objectXML->setAttribute('name', '--no-'.$option->getName());
237
+			$objectXML->setAttribute('shortcut', '');
238
+			$objectXML->setAttribute('accept_value', 0);
239
+			$objectXML->setAttribute('is_value_required', 0);
240
+			$objectXML->setAttribute('is_multiple', 0);
241
+			$objectXML->appendChild($descriptionXML = $dom->createElement('description'));
242
+			$descriptionXML->appendChild($dom->createTextNode('Negate the "--'.$option->getName().'" option'));
243
+		}
244
+
245
+		return $dom;
246
+	}
247 247
 }
Please login to merge, or discard this patch.
vendor/symfony/console/Descriptor/DescriptorInterface.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -20,5 +20,5 @@
 block discarded – undo
20 20
  */
21 21
 interface DescriptorInterface
22 22
 {
23
-    public function describe(OutputInterface $output, object $object, array $options = []);
23
+	public function describe(OutputInterface $output, object $object, array $options = []);
24 24
 }
Please login to merge, or discard this patch.
vendor/symfony/console/Descriptor/JsonDescriptor.php 1 patch
Indentation   +152 added lines, -152 removed lines patch added patch discarded remove patch
@@ -26,156 +26,156 @@
 block discarded – undo
26 26
  */
27 27
 class JsonDescriptor extends Descriptor
28 28
 {
29
-    /**
30
-     * {@inheritdoc}
31
-     */
32
-    protected function describeInputArgument(InputArgument $argument, array $options = [])
33
-    {
34
-        $this->writeData($this->getInputArgumentData($argument), $options);
35
-    }
36
-
37
-    /**
38
-     * {@inheritdoc}
39
-     */
40
-    protected function describeInputOption(InputOption $option, array $options = [])
41
-    {
42
-        $this->writeData($this->getInputOptionData($option), $options);
43
-        if ($option->isNegatable()) {
44
-            $this->writeData($this->getInputOptionData($option, true), $options);
45
-        }
46
-    }
47
-
48
-    /**
49
-     * {@inheritdoc}
50
-     */
51
-    protected function describeInputDefinition(InputDefinition $definition, array $options = [])
52
-    {
53
-        $this->writeData($this->getInputDefinitionData($definition), $options);
54
-    }
55
-
56
-    /**
57
-     * {@inheritdoc}
58
-     */
59
-    protected function describeCommand(Command $command, array $options = [])
60
-    {
61
-        $this->writeData($this->getCommandData($command, $options['short'] ?? false), $options);
62
-    }
63
-
64
-    /**
65
-     * {@inheritdoc}
66
-     */
67
-    protected function describeApplication(Application $application, array $options = [])
68
-    {
69
-        $describedNamespace = $options['namespace'] ?? null;
70
-        $description = new ApplicationDescription($application, $describedNamespace, true);
71
-        $commands = [];
72
-
73
-        foreach ($description->getCommands() as $command) {
74
-            $commands[] = $this->getCommandData($command, $options['short'] ?? false);
75
-        }
76
-
77
-        $data = [];
78
-        if ('UNKNOWN' !== $application->getName()) {
79
-            $data['application']['name'] = $application->getName();
80
-            if ('UNKNOWN' !== $application->getVersion()) {
81
-                $data['application']['version'] = $application->getVersion();
82
-            }
83
-        }
84
-
85
-        $data['commands'] = $commands;
86
-
87
-        if ($describedNamespace) {
88
-            $data['namespace'] = $describedNamespace;
89
-        } else {
90
-            $data['namespaces'] = array_values($description->getNamespaces());
91
-        }
92
-
93
-        $this->writeData($data, $options);
94
-    }
95
-
96
-    /**
97
-     * Writes data as json.
98
-     */
99
-    private function writeData(array $data, array $options)
100
-    {
101
-        $flags = $options['json_encoding'] ?? 0;
102
-
103
-        $this->write(json_encode($data, $flags));
104
-    }
105
-
106
-    private function getInputArgumentData(InputArgument $argument): array
107
-    {
108
-        return [
109
-            'name' => $argument->getName(),
110
-            'is_required' => $argument->isRequired(),
111
-            'is_array' => $argument->isArray(),
112
-            'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $argument->getDescription()),
113
-            'default' => \INF === $argument->getDefault() ? 'INF' : $argument->getDefault(),
114
-        ];
115
-    }
116
-
117
-    private function getInputOptionData(InputOption $option, bool $negated = false): array
118
-    {
119
-        return $negated ? [
120
-            'name' => '--no-'.$option->getName(),
121
-            'shortcut' => '',
122
-            'accept_value' => false,
123
-            'is_value_required' => false,
124
-            'is_multiple' => false,
125
-            'description' => 'Negate the "--'.$option->getName().'" option',
126
-            'default' => false,
127
-        ] : [
128
-            'name' => '--'.$option->getName(),
129
-            'shortcut' => $option->getShortcut() ? '-'.str_replace('|', '|-', $option->getShortcut()) : '',
130
-            'accept_value' => $option->acceptValue(),
131
-            'is_value_required' => $option->isValueRequired(),
132
-            'is_multiple' => $option->isArray(),
133
-            'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $option->getDescription()),
134
-            'default' => \INF === $option->getDefault() ? 'INF' : $option->getDefault(),
135
-        ];
136
-    }
137
-
138
-    private function getInputDefinitionData(InputDefinition $definition): array
139
-    {
140
-        $inputArguments = [];
141
-        foreach ($definition->getArguments() as $name => $argument) {
142
-            $inputArguments[$name] = $this->getInputArgumentData($argument);
143
-        }
144
-
145
-        $inputOptions = [];
146
-        foreach ($definition->getOptions() as $name => $option) {
147
-            $inputOptions[$name] = $this->getInputOptionData($option);
148
-            if ($option->isNegatable()) {
149
-                $inputOptions['no-'.$name] = $this->getInputOptionData($option, true);
150
-            }
151
-        }
152
-
153
-        return ['arguments' => $inputArguments, 'options' => $inputOptions];
154
-    }
155
-
156
-    private function getCommandData(Command $command, bool $short = false): array
157
-    {
158
-        $data = [
159
-            'name' => $command->getName(),
160
-            'description' => $command->getDescription(),
161
-        ];
162
-
163
-        if ($short) {
164
-            $data += [
165
-                'usage' => $command->getAliases(),
166
-            ];
167
-        } else {
168
-            $command->mergeApplicationDefinition(false);
169
-
170
-            $data += [
171
-                'usage' => array_merge([$command->getSynopsis()], $command->getUsages(), $command->getAliases()),
172
-                'help' => $command->getProcessedHelp(),
173
-                'definition' => $this->getInputDefinitionData($command->getDefinition()),
174
-            ];
175
-        }
176
-
177
-        $data['hidden'] = $command->isHidden();
178
-
179
-        return $data;
180
-    }
29
+	/**
30
+	 * {@inheritdoc}
31
+	 */
32
+	protected function describeInputArgument(InputArgument $argument, array $options = [])
33
+	{
34
+		$this->writeData($this->getInputArgumentData($argument), $options);
35
+	}
36
+
37
+	/**
38
+	 * {@inheritdoc}
39
+	 */
40
+	protected function describeInputOption(InputOption $option, array $options = [])
41
+	{
42
+		$this->writeData($this->getInputOptionData($option), $options);
43
+		if ($option->isNegatable()) {
44
+			$this->writeData($this->getInputOptionData($option, true), $options);
45
+		}
46
+	}
47
+
48
+	/**
49
+	 * {@inheritdoc}
50
+	 */
51
+	protected function describeInputDefinition(InputDefinition $definition, array $options = [])
52
+	{
53
+		$this->writeData($this->getInputDefinitionData($definition), $options);
54
+	}
55
+
56
+	/**
57
+	 * {@inheritdoc}
58
+	 */
59
+	protected function describeCommand(Command $command, array $options = [])
60
+	{
61
+		$this->writeData($this->getCommandData($command, $options['short'] ?? false), $options);
62
+	}
63
+
64
+	/**
65
+	 * {@inheritdoc}
66
+	 */
67
+	protected function describeApplication(Application $application, array $options = [])
68
+	{
69
+		$describedNamespace = $options['namespace'] ?? null;
70
+		$description = new ApplicationDescription($application, $describedNamespace, true);
71
+		$commands = [];
72
+
73
+		foreach ($description->getCommands() as $command) {
74
+			$commands[] = $this->getCommandData($command, $options['short'] ?? false);
75
+		}
76
+
77
+		$data = [];
78
+		if ('UNKNOWN' !== $application->getName()) {
79
+			$data['application']['name'] = $application->getName();
80
+			if ('UNKNOWN' !== $application->getVersion()) {
81
+				$data['application']['version'] = $application->getVersion();
82
+			}
83
+		}
84
+
85
+		$data['commands'] = $commands;
86
+
87
+		if ($describedNamespace) {
88
+			$data['namespace'] = $describedNamespace;
89
+		} else {
90
+			$data['namespaces'] = array_values($description->getNamespaces());
91
+		}
92
+
93
+		$this->writeData($data, $options);
94
+	}
95
+
96
+	/**
97
+	 * Writes data as json.
98
+	 */
99
+	private function writeData(array $data, array $options)
100
+	{
101
+		$flags = $options['json_encoding'] ?? 0;
102
+
103
+		$this->write(json_encode($data, $flags));
104
+	}
105
+
106
+	private function getInputArgumentData(InputArgument $argument): array
107
+	{
108
+		return [
109
+			'name' => $argument->getName(),
110
+			'is_required' => $argument->isRequired(),
111
+			'is_array' => $argument->isArray(),
112
+			'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $argument->getDescription()),
113
+			'default' => \INF === $argument->getDefault() ? 'INF' : $argument->getDefault(),
114
+		];
115
+	}
116
+
117
+	private function getInputOptionData(InputOption $option, bool $negated = false): array
118
+	{
119
+		return $negated ? [
120
+			'name' => '--no-'.$option->getName(),
121
+			'shortcut' => '',
122
+			'accept_value' => false,
123
+			'is_value_required' => false,
124
+			'is_multiple' => false,
125
+			'description' => 'Negate the "--'.$option->getName().'" option',
126
+			'default' => false,
127
+		] : [
128
+			'name' => '--'.$option->getName(),
129
+			'shortcut' => $option->getShortcut() ? '-'.str_replace('|', '|-', $option->getShortcut()) : '',
130
+			'accept_value' => $option->acceptValue(),
131
+			'is_value_required' => $option->isValueRequired(),
132
+			'is_multiple' => $option->isArray(),
133
+			'description' => preg_replace('/\s*[\r\n]\s*/', ' ', $option->getDescription()),
134
+			'default' => \INF === $option->getDefault() ? 'INF' : $option->getDefault(),
135
+		];
136
+	}
137
+
138
+	private function getInputDefinitionData(InputDefinition $definition): array
139
+	{
140
+		$inputArguments = [];
141
+		foreach ($definition->getArguments() as $name => $argument) {
142
+			$inputArguments[$name] = $this->getInputArgumentData($argument);
143
+		}
144
+
145
+		$inputOptions = [];
146
+		foreach ($definition->getOptions() as $name => $option) {
147
+			$inputOptions[$name] = $this->getInputOptionData($option);
148
+			if ($option->isNegatable()) {
149
+				$inputOptions['no-'.$name] = $this->getInputOptionData($option, true);
150
+			}
151
+		}
152
+
153
+		return ['arguments' => $inputArguments, 'options' => $inputOptions];
154
+	}
155
+
156
+	private function getCommandData(Command $command, bool $short = false): array
157
+	{
158
+		$data = [
159
+			'name' => $command->getName(),
160
+			'description' => $command->getDescription(),
161
+		];
162
+
163
+		if ($short) {
164
+			$data += [
165
+				'usage' => $command->getAliases(),
166
+			];
167
+		} else {
168
+			$command->mergeApplicationDefinition(false);
169
+
170
+			$data += [
171
+				'usage' => array_merge([$command->getSynopsis()], $command->getUsages(), $command->getAliases()),
172
+				'help' => $command->getProcessedHelp(),
173
+				'definition' => $this->getInputDefinitionData($command->getDefinition()),
174
+			];
175
+		}
176
+
177
+		$data['hidden'] = $command->isHidden();
178
+
179
+		return $data;
180
+	}
181 181
 }
Please login to merge, or discard this patch.
vendor/symfony/console/CI/GithubActionReporter.php 1 patch
Indentation   +65 added lines, -65 removed lines patch added patch discarded remove patch
@@ -20,80 +20,80 @@
 block discarded – undo
20 20
  */
21 21
 class GithubActionReporter
22 22
 {
23
-    private $output;
23
+	private $output;
24 24
 
25
-    /**
26
-     * @see https://github.com/actions/toolkit/blob/5e5e1b7aacba68a53836a34db4a288c3c1c1585b/packages/core/src/command.ts#L80-L85
27
-     */
28
-    private const ESCAPED_DATA = [
29
-        '%' => '%25',
30
-        "\r" => '%0D',
31
-        "\n" => '%0A',
32
-    ];
25
+	/**
26
+	 * @see https://github.com/actions/toolkit/blob/5e5e1b7aacba68a53836a34db4a288c3c1c1585b/packages/core/src/command.ts#L80-L85
27
+	 */
28
+	private const ESCAPED_DATA = [
29
+		'%' => '%25',
30
+		"\r" => '%0D',
31
+		"\n" => '%0A',
32
+	];
33 33
 
34
-    /**
35
-     * @see https://github.com/actions/toolkit/blob/5e5e1b7aacba68a53836a34db4a288c3c1c1585b/packages/core/src/command.ts#L87-L94
36
-     */
37
-    private const ESCAPED_PROPERTIES = [
38
-        '%' => '%25',
39
-        "\r" => '%0D',
40
-        "\n" => '%0A',
41
-        ':' => '%3A',
42
-        ',' => '%2C',
43
-    ];
34
+	/**
35
+	 * @see https://github.com/actions/toolkit/blob/5e5e1b7aacba68a53836a34db4a288c3c1c1585b/packages/core/src/command.ts#L87-L94
36
+	 */
37
+	private const ESCAPED_PROPERTIES = [
38
+		'%' => '%25',
39
+		"\r" => '%0D',
40
+		"\n" => '%0A',
41
+		':' => '%3A',
42
+		',' => '%2C',
43
+	];
44 44
 
45
-    public function __construct(OutputInterface $output)
46
-    {
47
-        $this->output = $output;
48
-    }
45
+	public function __construct(OutputInterface $output)
46
+	{
47
+		$this->output = $output;
48
+	}
49 49
 
50
-    public static function isGithubActionEnvironment(): bool
51
-    {
52
-        return false !== getenv('GITHUB_ACTIONS');
53
-    }
50
+	public static function isGithubActionEnvironment(): bool
51
+	{
52
+		return false !== getenv('GITHUB_ACTIONS');
53
+	}
54 54
 
55
-    /**
56
-     * Output an error using the Github annotations format.
57
-     *
58
-     * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-error-message
59
-     */
60
-    public function error(string $message, string $file = null, int $line = null, int $col = null): void
61
-    {
62
-        $this->log('error', $message, $file, $line, $col);
63
-    }
55
+	/**
56
+	 * Output an error using the Github annotations format.
57
+	 *
58
+	 * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-error-message
59
+	 */
60
+	public function error(string $message, string $file = null, int $line = null, int $col = null): void
61
+	{
62
+		$this->log('error', $message, $file, $line, $col);
63
+	}
64 64
 
65
-    /**
66
-     * Output a warning using the Github annotations format.
67
-     *
68
-     * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-warning-message
69
-     */
70
-    public function warning(string $message, string $file = null, int $line = null, int $col = null): void
71
-    {
72
-        $this->log('warning', $message, $file, $line, $col);
73
-    }
65
+	/**
66
+	 * Output a warning using the Github annotations format.
67
+	 *
68
+	 * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-warning-message
69
+	 */
70
+	public function warning(string $message, string $file = null, int $line = null, int $col = null): void
71
+	{
72
+		$this->log('warning', $message, $file, $line, $col);
73
+	}
74 74
 
75
-    /**
76
-     * Output a debug log using the Github annotations format.
77
-     *
78
-     * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-debug-message
79
-     */
80
-    public function debug(string $message, string $file = null, int $line = null, int $col = null): void
81
-    {
82
-        $this->log('debug', $message, $file, $line, $col);
83
-    }
75
+	/**
76
+	 * Output a debug log using the Github annotations format.
77
+	 *
78
+	 * @see https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-a-debug-message
79
+	 */
80
+	public function debug(string $message, string $file = null, int $line = null, int $col = null): void
81
+	{
82
+		$this->log('debug', $message, $file, $line, $col);
83
+	}
84 84
 
85
-    private function log(string $type, string $message, string $file = null, int $line = null, int $col = null): void
86
-    {
87
-        // Some values must be encoded.
88
-        $message = strtr($message, self::ESCAPED_DATA);
85
+	private function log(string $type, string $message, string $file = null, int $line = null, int $col = null): void
86
+	{
87
+		// Some values must be encoded.
88
+		$message = strtr($message, self::ESCAPED_DATA);
89 89
 
90
-        if (!$file) {
91
-            // No file provided, output the message solely:
92
-            $this->output->writeln(sprintf('::%s::%s', $type, $message));
90
+		if (!$file) {
91
+			// No file provided, output the message solely:
92
+			$this->output->writeln(sprintf('::%s::%s', $type, $message));
93 93
 
94
-            return;
95
-        }
94
+			return;
95
+		}
96 96
 
97
-        $this->output->writeln(sprintf('::%s file=%s,line=%s,col=%s::%s', $type, strtr($file, self::ESCAPED_PROPERTIES), strtr($line ?? 1, self::ESCAPED_PROPERTIES), strtr($col ?? 0, self::ESCAPED_PROPERTIES), $message));
98
-    }
97
+		$this->output->writeln(sprintf('::%s file=%s,line=%s,col=%s::%s', $type, strtr($file, self::ESCAPED_PROPERTIES), strtr($line ?? 1, self::ESCAPED_PROPERTIES), strtr($col ?? 0, self::ESCAPED_PROPERTIES), $message));
98
+	}
99 99
 }
Please login to merge, or discard this patch.