setDefinition() public method

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
Example #1
0
 /**
  * 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;
     };
 }
Example #2
0
 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'));
 }