public function trigger() { $target_option = $this->getTarget(); $target_plugin = $this->plugins->getPluginByNamespace($target_option); $child_arguments = new Arguments(array('input' => array_slice($_SERVER['argv'], 2))); $child_arguments->addFlag(array('version', 'v'), '查看版本信息')->addFlag(array('help', 'h'), '查看帮助信息')->addFlags($target_plugin->getFlags())->addOptions($target_plugin->getOptions()); $child_arguments->parse(); if ($child_arguments['help']) { die($child_arguments->getHelpScreen() . PHP_EOL . PHP_EOL); } elseif ($child_arguments['version']) { die($target_plugin->getNamespace() . ':' . $target_plugin->getVersion() . PHP_EOL . PHP_EOL); } else { $children_option = array_keys(array_merge($target_plugin->getOptions(), $target_plugin->getFlags())); $child_option = null; $child_argument_arr = array(); foreach ($children_option as $option) { if (isset($child_arguments[$option])) { $child_argument_arr[$option] = $child_arguments[$option]; } } if (empty($child_argument_arr)) { die($child_arguments->getHelpScreen() . PHP_EOL . PHP_EOL); } else { $target_plugin->exec($child_argument_arr); } } }
/** * Returns the available commands the Console provides * @see \cli\Arguments * @param string $strict * @param string $force * @return \cli\Arguments */ public function getArgs($strict = false, $force = false) { if (is_null($this->args) || $force) { $this->args = new \cli\Arguments($strict); $this->args->addFlag(array('verbose', 'v'), 'Turn on verbose output'); $this->args->addFlag('version', 'Display the version'); $this->args->addFlag(array('help', 'h'), 'Show this help screen'); } return $this->args; }
/** * @see \qtism\cli\Cli::setupArguments() */ protected function setupArguments() { $arguments = new Arguments(array('strict' => false)); // -- Options // Flavour option. $arguments->addOption(array('flavour'), array('default' => 'xhtml', 'description' => 'Rendering flavour.')); // Source option. $arguments->addOption(array('source'), array('description' => 'QTI XML source to be rendered.')); // XMLBase option. $arguments->addOption(array('xmlbase'), array('default' => 'process', 'description' => 'xml:base behaviour.')); // -- Flags // Document flag. $arguments->addFlag(array('document', 'd'), 'Embed the rendering into a document.'); // Format flag. $arguments->addFlag(array('format', 'f'), 'Format the rendering output with indentation.'); // Novalidate flag. $arguments->addFlag(array('novalidate', 'n'), 'Do not validate QTI XML source.'); // CSS Class Hierarchy flag. $arguments->addFlag(array('csshierarchy', 'c'), 'Full qti- CSS class hierarchy.'); return $arguments; }
<?php use Cli\Arguments; require '../vendor/autoload.php'; $arguments = new Arguments(); $arguments->addArgument('name', array('help' => 'Name to greet', 'default' => 'World')); $arguments->addFlag(array('c', 'capitals')); try { $options = $arguments->parse(); } catch (\Cli\ParsingException $e) { echo $e->getMessage(); } $name = $options['name']; if ($options['capitals']) { $name = strtoupper($name); } echo 'Hello, ' . $name . '!';
/** * @author Roman Ozana <*****@*****.**> */ use cli\Arguments; use cli\Colors; use cli\progress\Bar; use Sepia\PoParser; require_once __DIR__ . '/../vendor/autoload.php'; Colors::enable(); $arguments = new Arguments(compact('strict')); $arguments->addOption(['apikey', 'k'], ['description' => 'Google Translate API Key']); $arguments->addOption(['input', 'i'], ['description' => 'Path to input PO file']); $arguments->addOption(['output', 'o'], ['description' => 'Path to output PO file (default: ./tmp/*.po)']); $arguments->addOption(['from', 'f'], ['default' => 'en', 'description' => 'Source language (default: en)']); $arguments->addOption(['to', 't'], ['default' => 'cs', 'description' => 'Target language (default: cs)']); $arguments->addFlag(['verbose', 'v'], 'Turn on verbose output'); $arguments->addFlag(['help', 'h'], 'Show help'); $arguments->parse(); $apikey = $arguments['apikey']; $input = $arguments['input']; $output = $arguments['output'] ? $arguments['output'] : __DIR__ . '/../tmp/' . basename($input); $from = $arguments['from'] ? $arguments['from'] : 'en'; $to = $arguments['to'] ? $arguments['to'] : 'cs'; $verbose = (bool) $arguments['verbose']; if ($arguments['help'] || !$apikey || !$input) { echo str_repeat('-', 80) . PHP_EOL; echo 'PO translator parametters ' . PHP_EOL; echo str_repeat('-', 80) . PHP_EOL; echo $arguments->getHelpScreen(); echo PHP_EOL . PHP_EOL; echo 'Example' . PHP_EOL;