Sha256: f85bf332c3337d9b48f4413c9ecd85b9e4acee9fe190217568e907d7cfe67005

Contents?: true

Size: 1.3 KB

Versions: 42

Compression:

Stored size: 1.3 KB

Contents

<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Console\CommandLoader;

use Symfony\Component\Console\Exception\CommandNotFoundException;

/**
 * A simple command loader using factories to instantiate commands lazily.
 *
 * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
 */
class FactoryCommandLoader implements CommandLoaderInterface
{
    private $factories;

    /**
     * @param callable[] $factories Indexed by command names
     */
    public function __construct(array $factories)
    {
        $this->factories = $factories;
    }

    /**
     * {@inheritdoc}
     */
    public function has($name)
    {
        return isset($this->factories[$name]);
    }

    /**
     * {@inheritdoc}
     */
    public function get($name)
    {
        if (!isset($this->factories[$name])) {
            throw new CommandNotFoundException(sprintf('Command "%s" does not exist.', $name));
        }

        $factory = $this->factories[$name];

        return $factory();
    }

    /**
     * {@inheritdoc}
     */
    public function getNames()
    {
        return array_keys($this->factories);
    }
}

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
dependabot-composer-0.119.0.beta1 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.113.19 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.112.1 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.111.57 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.111.56 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.111.52 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.111.50 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.111.25 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.111.17 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.111.15 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.110.13 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.108.11 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.108.8 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.107.47 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.107.39 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.107.36 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.107.28 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.107.14 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.106.12 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php
dependabot-composer-0.106.11 helpers/vendor/symfony/console/CommandLoader/FactoryCommandLoader.php