<?php /** * Sample invocations: * * # php example_args.php -vC ./ --version * {"verbose":true,"cache":".\/","version":true} * # php example_args.php -vC --version * PHP Warning: [cli\Arguments] no value given for -C * # php example_args.php -vC multi word --version * {"verbose":true,"cache":"multi word","version":true} * */ require 'common.php'; $strict = in_array('--strict', $_SERVER['argv']); $arguments = new \cli\Arguments(compact('strict')); $arguments->addFlag(array('verbose', 'v'), 'Turn on verbose output'); $arguments->addFlag('version', 'Display the version'); $arguments->addFlag(array('quiet', 'q'), 'Disable all output'); $arguments->addFlag(array('help', 'h'), 'Show this help screen'); $arguments->addOption(array('cache', 'C'), array( 'default' => getcwd(), 'description' => 'Set the cache directory')); $arguments->addOption(array('name', 'n'), array( 'default' => 'James', 'description' => 'Set a name with a really long description and a default so we can see what line wrapping looks like which is probably a goo idea')); $arguments->parse(); if ($arguments['help']) { echo $arguments->getHelpScreen(); echo "\n\n"; } echo $arguments->asJSON() . "\n";