<?php
use deswerve\colin\CommandLineInterface;
require_once 'vendor/autoload.php';
// use the name of the script file or symlink as app name <-.
// .---------------'
// .--------'-------.
$colin = (new CommandLineInterface(basename($argv[0]), ['OPTIONS']))
->addOption('redis', 'Host (and port if not 6379) to Redis server, e. g. "example.com:6379"', ['HOSTPORT'], 'r')
->addOption('redis-db-index', 'Redis database index, default 0', ['NUM'], 'i', true, [0])
->addOption(
'redis-secret', // long name, given as --redis-secret on the command line
'Redis secret key', // description of this switch
['PASSWORD'], // placeholders for the number of expected values <-.
's', // short name, given as -s on the command line |
true, // is this switch optional? |
[null] // default values, must match the length of --------'
)
->addOption('hexastore', 'Key of sorted set for hexastore, default "hexastore"', ['NAME'], 'h', true, ['hexastore'])
->addOption('username', 'Market user', ['NAME'], 'u')
->addOption('phrase', 'Market password', ['PASSWORD'], 'p')
->addOption('verbose', 'Increase verbosity', [], 'v', true)
->addOption('vector', '3D vector', ['X', 'Y', 'Z']);
// print usage info; usually you would only do this only, when the config is incomplete or --help is used
echo $colin, PHP_EOL;
// show the actual input... (just for demonstration)
echo basename($argv[0]), ' ', implode(' ', array_slice($argv, 1)), PHP_EOL;
// ... in comparison with the generated data structure
echo preg_replace(
'<\\n {8}(?:(})| {4,})>',
' \\1',
json_encode($colin->processCommandLine($argv), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES)
);
__halt_compiler();
Usage:
colin-example.php OPTIONS
Options (required):
-r --redis HOSTPORT Host (and port if not 6379) to Redis server, e. g. "example.com:6379"
-u --username NAME Market user
-p --phrase PASSWORD Market password
--vector X Y Z 3D vector
Options (optional):
-i --redis-db-index NUM Redis database index, default 0
-s --redis-secret PASSWORD Redis secret key
-h --hexastore NAME Key of sorted set for hexastore, default "hexastore"
-v --verbose Increase verbosity
colin-example.php -r localhost:16379 -vv --vector 2 3.14 19 -u=alice extra params --phrase secret_passphrase --verbose
{
"options": {
"redis": { "values": [ "localhost:16379" ], "count": 1 },
"redis-db-index": { "values": [ 0 ], "count": 0 },
"redis-secret": { "values": [ null ], "count": 0 },
"hexastore": { "values": [ "hexastore" ], "count": 0 },
"username": { "values": [ "alice" ], "count": 1 },
"phrase": { "values": [ "secret_passphrase" ], "count": 1 },
"verbose": { "values": [], "count": 3 },
"vector": { "values": [ "2", "3.14", "19" ], "count": 1 }
},
"params": [
"extra",
"params"
]
}
|