Exemple #1
0
<?php

require dirname(__FILE__) . '/../lib/OptionParser.php';
$parser = new OptionParser();
$parser->addHead("Echo the parameters of each flag as determined by OptionParser.\n");
$parser->addHead("Usage: " . basename($argv[0]) . " [ options ]\n");
$parser->addRule('a', "A short flag with no parameter");
$parser->addRule('b:', "A short flag with an optional parameter");
$parser->addRule('c::', "A short flag with a required parameter");
$parser->addRule('long-a', "A long flag with no parameter");
$parser->addRule('long-b:', "A long flag with an optional parameter");
$parser->addRule('long-c::', "A long flag with a required parameter");
$args = $argv;
try {
    $parser->parse($args);
} catch (Exception $e) {
    die($parser->getUsage());
}
$flagNames = explode(' ', 'a b c long-a long-b long-c');
echo "Parsed arguments:\n";
foreach ($flagNames as $flag) {
    $param = var_export($parser->getOption($flag), true);
    echo sprintf(' %6s %s', $flag, $param) . "\n";
}
echo "\nRemaining arguments: " . implode(' ', $args) . "\n";
 public function testLongOptionWithParameter()
 {
     $op = new OptionParser();
     $op->addRule('verbose');
     $op->addRule('dir-name::');
     $op->addRule('long-req::');
     $op->addRule('long-opt:');
     $args = array("-", "--verbose=yes", '--dir-name', 'lib/test/dir', '--long-req=hi there', '--long-opt=-a');
     $op->parse($args);
     $this->assertEquals($op->verbose, 'yes');
     $this->assertEquals($op->getOption('dir-name'), 'lib/test/dir');
     $this->assertEquals($op->getOption('long-req'), 'hi there');
     $this->assertEquals($op->getOption('long-opt'), '-a');
     $this->setExpectedException('Exception');
     $args = array('-', '--dir-name');
     $op->parse($args);
 }