function testUsage() { $parser = new Parser("Hello World", "hello"); $parser->addFlag("foo", array("alias" => "-f", "help" => "Turn on fooness")); $parser->addFlag("bar", array("has_value" => true)); $parser->addArgument("baz", array("required" => true)); $parser->addArgument("boo", array("required" => false)); $parser->addArgument("bab", array("var_arg" => true, "help" => "Bla bla bla")); $this->assertEquals(<<<EOT Usage: hello [--foo|-f] [--bar <bar>] <baz> [<boo>] [<bab> ...] Hello World EOT , $parser->usage()); $this->assertEquals(<<<EOT {$parser->usage()} Arguments: baz (required) boo bab: Bla bla bla Flags: -f, --foo: Turn on fooness --bar <bar> EOT , $parser->longUsage()); }
<?php require __DIR__ . "/../vendor/autoload.php"; use CHH\Optparse; $opts = new Optparse\Parser(); $opts->addFlag("help", array("alias" => "-h"), function () use($opts) { echo "{$opts->usage()}\n"; exit(0); }); $opts->addArgument("files", array("var_arg" => true, "required" => true)); try { $opts->parse(); } catch (Optparse\Exception $e) { fwrite(STDERR, "{$e->getMessage()}\n\n"); fwrite(STDERR, "{$opts->usage()}\n"); exit(1); } foreach ($opts["files"] as $file) { readfile($file); echo "\n"; }