wjzijderveld/console-input-resolver

Library to ask questions for missing options and arguments

0.2.0 2014-11-30 14:38 UTC

This package is not auto-updated.

Last update: 2024-11-05 02:28:15 UTC


README

Build Status

A simple library for Symfony Console.

It allows to ask the user for options if not provided, this way you can use a command both interactive as in a bash oneliner.

Installation

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

Usage

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);
    }
}

Example output:

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