PluginProbe
UpStream: a Project Management Plugin for WordPress / trunk
UpStream: a Project Management Plugin for WordPress vtrunk
trunk 1.39.0 1.39.1 1.39.2 1.39.3 2.0.7 2.1.0
upstream / vendor / symfony / console / CommandLoader / ContainerCommandLoader.php

ContainerCommandLoader.php in UpStream: a Project Management Plugin for WordPress trunk, at vendor/symfony/console/CommandLoader/ContainerCommandLoader.php

65 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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
12 namespace Symfony\Component\Console\CommandLoader;
13
14 use Psr\Container\ContainerInterface;
15 use Symfony\Component\Console\Exception\CommandNotFoundException;
16
17 /**
18 * Loads commands from a PSR-11 container.
19 *
20 * @author Robin Chalas <robin.chalas@gmail.com>
21 */
22 class ContainerCommandLoader implements CommandLoaderInterface
23 {
24 private $container;
25 private $commandMap;
26
27 /**
28 * @param ContainerInterface $container A container from which to load command services
29 * @param array $commandMap An array with command names as keys and service ids as values
30 */
31 public function __construct(ContainerInterface $container, array $commandMap)
32 {
33 $this->container = $container;
34 $this->commandMap = $commandMap;
35 }
36
37 /**
38 * {@inheritdoc}
39 */
40 public function get($name)
41 {
42 if (!$this->has($name)) {
43 throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name));
44 }
45
46 return $this->container->get($this->commandMap[$name]);
47 }
48
49 /**
50 * {@inheritdoc}
51 */
52 public function has($name)
53 {
54 return isset($this->commandMap[$name]) && $this->container->has($this->commandMap[$name]);
55 }
56
57 /**
58 * {@inheritdoc}
59 */
60 public function getNames()
61 {
62 return array_keys($this->commandMap);
63 }
64 }
65