<?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); }