[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

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

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <[email protected]>
   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 Symfony\Component\Console\Exception\CommandNotFoundException;
  15  
  16  /**
  17   * A simple command loader using factories to instantiate commands lazily.
  18   *
  19   * @author Maxime Steinhausser <[email protected]>
  20   */
  21  class FactoryCommandLoader implements CommandLoaderInterface
  22  {
  23      private $factories;
  24  
  25      /**
  26       * @param callable[] $factories Indexed by command names
  27       */
  28      public function __construct(array $factories)
  29      {
  30          $this->factories = $factories;
  31      }
  32  
  33      /**
  34       * {@inheritdoc}
  35       */
  36      public function has(string $name)
  37      {
  38          return isset($this->factories[$name]);
  39      }
  40  
  41      /**
  42       * {@inheritdoc}
  43       */
  44      public function get(string $name)
  45      {
  46          if (!isset($this->factories[$name])) {
  47              throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name));
  48          }
  49  
  50          $factory = $this->factories[$name];
  51  
  52          return $factory();
  53      }
  54  
  55      /**
  56       * {@inheritdoc}
  57       */
  58      public function getNames()
  59      {
  60          return array_keys($this->factories);
  61      }
  62  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer