示例#1
0
 /**
  *
  */
 public function testRegisteredOptions()
 {
     $params = new Parameters();
     $params->registerOption('first', 'f', Parameters::VALUE_YES, 'desc 1');
     $params->registerOption('second', null, Parameters::VALUE_NO, 'desc 2');
     $params->registerOption('third', null, Parameters::VALUE_OPTIONAL);
     $options = $params->getRegisteredOptions();
     $expected = array(array('name' => 'first', 'short' => 'f', 'valueFlag' => Parameters::VALUE_YES, 'description' => 'desc 1'), array('name' => 'second', 'short' => null, 'valueFlag' => Parameters::VALUE_NO, 'description' => 'desc 2'), array('name' => 'third', 'short' => null, 'valueFlag' => Parameters::VALUE_OPTIONAL, 'description' => null));
     $this->assertEquals($expected, $options);
 }
示例#2
0
文件: Script.php 项目: phellow/cli
 /**
  * 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());
 }