<?php error_reporting(-1); require_once __DIR__ . '/vendor/autoload.php'; $args = new cli\Arguments(array('flags' => array('verbose' => array('description' => 'Turn on verbose mode', 'aliases' => array('v')), 'c' => array('description' => 'A counter to test stackable', 'stackable' => true)), 'options' => array('user' => array('description' => 'Username for authentication', 'aliases' => array('u'))), 'strict' => true)); try { $args->parse(); } catch (cli\InvalidArguments $e) { echo $e->getMessage() . "\n\n"; } print_r($args->getArguments());
<?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";
/** * Retrieve arguments from global to prepare them for further use. * * @param CommandEvent $event The Composer event fired to retrieve arguments from * * @author Benjamin Carl <*****@*****.**> * @return boolean|null TRUE on success, otherwise FALSE * @access protected * @static */ protected static function initArguments(CommandEvent $event = null) { // Check for retrieving arguments from Composer event ... if ($event !== null) { $arguments = $event->getArguments(); } else { $arguments = $_SERVER['argv']; } // Check for strict mode $strict = in_array('--strict', $arguments); $arguments = new \cli\Arguments(compact('strict'), $arguments); $arguments->addFlag(array('verbose', 'v'), 'Turn on verbose output'); $arguments->addFlag(array('version', 'V'), 'Display the version'); $arguments->addFlag(array('quiet', 'q'), 'Disable all output'); $arguments->addFlag(array('help', 'h'), 'Show this help screen'); // Parse the arguments $arguments->parse(); // Store arguments ... self::$arguments = $arguments; if (isset(self::$arguments['help']) === true) { self::showHelp(); } }