/** * */ 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); }
/** * 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()); }