Set an input definition to be used with this application.
public setDefinition ( Symfony\Component\Console\Input\InputDefinition $definition ) | ||
$definition | Symfony\Component\Console\Input\InputDefinition | The input definition |
/** * Registers services on the given container. * * This method should only be used to configure services and parameters. * It should not get services. * * @param \Pimple\Container $container A container instance */ public function register(Container $container) { $container['console.name'] = 'Console'; $container['console.version'] = '1.0'; $container['console.event_dispatcher'] = null; $container['console.enable_xdebug'] = false; $container['console'] = function (Container $container) { $console = new ConsoleApplication($container['console.name'], $container['console.version']); if ($container['console.enable_xdebug'] && function_exists('xdebug_enable')) { $definition = $console->getDefinition(); $definition->addOption(new InputOption('debug', null, InputOption::VALUE_NONE, 'Enable XDebug jit remote mode')); $console->setDefinition($definition); foreach ($_SERVER['argv'] as $arg) { if ('--debug' === $arg) { poke_xdebug(); break; } elseif ('--' === $arg) { break; } } } $dispatcher = $container['console.event_dispatcher']; if (is_string($dispatcher)) { $dispatcher = $container[$dispatcher]; } if ($dispatcher instanceof EventDispatcherInterface) { $console->setDispatcher($dispatcher); $dispatcher->dispatch(Events::INIT, new InitializeConsoleEvent($console)); } return $console; }; }
public function testSettingCustomInputDefinitionOverwritesDefaultValues() { $application = new Application(); $application->setAutoExit(false); $application->setCatchExceptions(false); $application->setDefinition(new InputDefinition(array(new InputOption('--custom', '-c', InputOption::VALUE_NONE, 'Set the custom input definition.')))); $inputDefinition = $application->getDefinition(); // check whether the default arguments and options are not returned any more $this->assertFalse($inputDefinition->hasArgument('command')); $this->assertFalse($inputDefinition->hasOption('help')); $this->assertFalse($inputDefinition->hasOption('quiet')); $this->assertFalse($inputDefinition->hasOption('verbose')); $this->assertFalse($inputDefinition->hasOption('version')); $this->assertFalse($inputDefinition->hasOption('ansi')); $this->assertFalse($inputDefinition->hasOption('no-ansi')); $this->assertFalse($inputDefinition->hasOption('no-interaction')); $this->assertTrue($inputDefinition->hasOption('custom')); }