[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/console/CommandLoader/ -> ContainerCommandLoader.php (source)

   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  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1