PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.2.0
Independent Analytics – WordPress Analytics Plugin v2.2.0
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 / ApplicationDescription.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
ApplicationDescription.php
121 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\Exception\CommandNotFoundException;
16 /**
17 * @author Jean-François Simon <jeanfrancois.simon@sensiolabs.com>
18 *
19 * @internal
20 */
21 class ApplicationDescription
22 {
23 public const GLOBAL_NAMESPACE = '_global';
24 private $application;
25 private $namespace;
26 private $showHidden;
27 /**
28 * @var array
29 */
30 private $namespaces;
31 /**
32 * @var array<string, Command>
33 */
34 private $commands;
35 /**
36 * @var array<string, Command>
37 */
38 private $aliases;
39 public function __construct(Application $application, string $namespace = null, bool $showHidden = \false)
40 {
41 $this->application = $application;
42 $this->namespace = $namespace;
43 $this->showHidden = $showHidden;
44 }
45 public function getNamespaces() : array
46 {
47 if (null === $this->namespaces) {
48 $this->inspectApplication();
49 }
50 return $this->namespaces;
51 }
52 /**
53 * @return Command[]
54 */
55 public function getCommands() : array
56 {
57 if (null === $this->commands) {
58 $this->inspectApplication();
59 }
60 return $this->commands;
61 }
62 /**
63 * @throws CommandNotFoundException
64 */
65 public function getCommand(string $name) : Command
66 {
67 if (!isset($this->commands[$name]) && !isset($this->aliases[$name])) {
68 throw new CommandNotFoundException(\sprintf('Command "%s" does not exist.', $name));
69 }
70 return $this->commands[$name] ?? $this->aliases[$name];
71 }
72 private function inspectApplication()
73 {
74 $this->commands = [];
75 $this->namespaces = [];
76 $all = $this->application->all($this->namespace ? $this->application->findNamespace($this->namespace) : null);
77 foreach ($this->sortCommands($all) as $namespace => $commands) {
78 $names = [];
79 /** @var Command $command */
80 foreach ($commands as $name => $command) {
81 if (!$command->getName() || !$this->showHidden && $command->isHidden()) {
82 continue;
83 }
84 if ($command->getName() === $name) {
85 $this->commands[$name] = $command;
86 } else {
87 $this->aliases[$name] = $command;
88 }
89 $names[] = $name;
90 }
91 $this->namespaces[$namespace] = ['id' => $namespace, 'commands' => $names];
92 }
93 }
94 private function sortCommands(array $commands) : array
95 {
96 $namespacedCommands = [];
97 $globalCommands = [];
98 $sortedCommands = [];
99 foreach ($commands as $name => $command) {
100 $key = $this->application->extractNamespace($name, 1);
101 if (\in_array($key, ['', self::GLOBAL_NAMESPACE], \true)) {
102 $globalCommands[$name] = $command;
103 } else {
104 $namespacedCommands[$key][$name] = $command;
105 }
106 }
107 if ($globalCommands) {
108 \ksort($globalCommands);
109 $sortedCommands[self::GLOBAL_NAMESPACE] = $globalCommands;
110 }
111 if ($namespacedCommands) {
112 \ksort($namespacedCommands, \SORT_STRING);
113 foreach ($namespacedCommands as $key => $commandsSet) {
114 \ksort($commandsSet);
115 $sortedCommands[$key] = $commandsSet;
116 }
117 }
118 return $sortedCommands;
119 }
120 }
121