wjzijderveld/console-input-resolver

用于询问缺少的选项和参数的库

0.2.0 2014-11-30 14:38 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:04:04 UTC


README

Build Status

这是一个简单的Symfony Console库。

它允许在未提供时向用户询问选项,这样您就可以既在交互式命令中,也在bash单行命令中使用此命令。

安装

composer require wjzijderveld/console-input-resolver 1.*@dev

用法

class GenerateCommand extends Command
{
    private $inputResolver;

    public function __construct(Resolver $inputResolver)
    {
        parent::__construct();

        $this->inputResolver = $inputResolver;
    }

    public function configure()
    {
        $this->setName('generate');

        $this
            ->addArgument('class', InputArgument::OPTIONAL, 'The name of the class to generate')
            ->addOption('namespace', null, InputOption::VALUE_REQUIRED, 'The namespace to generate the class in');
    }

    public function execut(InputInterface $input, OutputInterface $output)
    {
        // values will now contain values for namespace and class
        // for each option or argument that is not given when running this command
        // it will interactivily ask for a value
        $values = $this->inputResolver->resolveInputDefinition($this->getDefinition(), array('namespace', 'class'));

        var_dump($values);
    }
}

示例输出

$ ./console generate --namespace Acme
> The name of the class to generate: Foo
> array(2) {
  'namespace' =>
  string(4) "Acme"
  'class' =>
  string(3) "Foo"
}