Exemple #1
0
 /**
  * @depends testRegisteredArguments
  * @depends testRegisteredOptions
  */
 public function testParse()
 {
     $params = new Parameters();
     $params->registerArgument('action');
     $params->registerOption('help', 'h', Parameters::VALUE_NO);
     $params->registerOption('verbose', 'v', Parameters::VALUE_NO);
     $params->registerOption('no', null, Parameters::VALUE_NO);
     $params->registerOption('name', null, Parameters::VALUE_YES);
     $params->registerOption('name2', null, Parameters::VALUE_YES);
     $params->registerOption('opt1', null, Parameters::VALUE_OPTIONAL);
     $params->registerOption('opt2', null, Parameters::VALUE_OPTIONAL);
     $_SERVER['argv'] = array('file.php', 'doIt', '-hv', '--name=Christian', '--opt1', '--opt2=value');
     $params->parse();
     $this->assertEquals('file.php', $params->getExecutedFile());
     $this->assertEquals('doIt', $params->get('action'));
     $this->assertTrue($params->get('help'));
     $this->assertTrue($params->get('verbose'));
     $this->assertNull($params->get('no'));
     $this->assertEquals('Christian', $params->get('name'));
     $this->assertNull($params->get('name2'));
     $this->assertTrue($params->get('opt1'));
     $this->assertEquals('value', $params->get('opt2'));
     $this->assertNull($params->get('nope'));
 }
Exemple #2
0
 /**
  * Show the help message.
  *
  * @param Parameters $params
  *
  * @return void
  */
 protected function showHelp(Parameters $params)
 {
     $table = new SimpleTable();
     $table->border = false;
     $table->padding = 3;
     $executedFile = basename($params->getExecutedFile());
     $arguments = $params->getRegisteredArguments();
     $argsUsage = '';
     $argsRows = [];
     foreach ($arguments as $arg) {
         $argsUsage .= ' <' . $arg['name'] . '>';
         $argsRows[] = [$arg['name'], $arg['description']];
     }
     $this->outln('Usage: ' . $executedFile . $argsUsage);
     // show possible arguments
     if ($argsRows) {
         $table->addRow([]);
         $table->addRow(['Arguments:']);
         foreach ($argsRows as $row) {
             $table->addRow($row);
         }
     }
     // show possible options
     $options = $params->getRegisteredOptions();
     if ($options) {
         $table->addRow([]);
         $table->addRow(['Options:']);
         foreach ($options as $opt) {
             $val = '';
             switch ($opt['valueFlag']) {
                 case Parameters::VALUE_YES:
                     $val = '=<value>';
                     break;
                 case Parameters::VALUE_OPTIONAL:
                     $val = '[=<value>]';
                     break;
             }
             $def = '--' . $opt['name'] . $val;
             if ($opt['short']) {
                 $def .= ' -' . $opt['short'] . $val;
             }
             $table->addRow([$def, $opt['description']]);
         }
     }
     $this->outln($table->getTable());
 }