Very simple wrapper for getopt() function.
This is only a wrapper, therefore the output from mini-getopt is going to be
the same as getopt() function.
-
First you have to instantiate
\Jawira\MiniGetopt\MiniGetopt. -
Then you have to configure options you want to use. To do so use the following methods:
MiniGetopt::addRequired.MiniGetopt::addOptional.MiniGetopt::addNoValue.
-
To retrieve values you have to call one of the following method:
MiniGetopt::getoptreturns the same asgetopt(). Optionally you can pass$optindparameter.MiniGetopt::getOptionto get only one value.MiniGetopt::docget documentation.
PHP code:
// resources/example.php
// Preparing options
$mg = new \Jawira\MiniGetopt\MiniGetopt();
$mg->addRequired('f', 'format'); // value is required
$mg->addOptional('r', 'retry'); // value is optional
$mg->addOptional('q', ''); // only short option
$mg->addNoValue('v', 'verbose'); // no value
$mg->addNoValue('', 'version'); // only long option
// Calling getopt
var_export($mg->getopt());Executing code:
$ php resources/example.php
array (
)$ php resources/example.php -f=xml
array (
'f' => 'xml',
)$ php resources/example.php --format=xml -r -v
array (
'format' => 'xml',
'r' => false,
'v' => false,
)$ php resources/example.php -f=json -r=yes -v
array (
'f' => 'json',
'r' => 'yes',
'v' => false,
)$ php resources/example.php --retry -vvv
array (
'retry' => false,
'v' =>
array (
0 => false,
1 => false,
2 => false,
),
)$ php resources/example.php --version=banana --invalid
array (
'version' => false,
)// Setup
$mg = new \Jawira\MiniGetopt\MiniGetopt();
$mg->addRequired('f', 'format');
$mg->addNoValue('v', 'verbose');
// Calling getopt function with `optind` parameter
$optind = null;
$options = $mg->getopt($optind);
echo "optind: $optind" . PHP_EOL;$ php resources/example.php --format=pdf -vv
optind: 3$mg = new \Jawira\MiniGetopt\MiniGetopt();
$mg->addRequired('f', 'format', 'Format to export', 'png|gif|svg');
$mg->addOptional('r', 'retry', 'Retry on error', 'count');
$mg->addOptional('q', '', 'Quiet mode', 'yes|no');
$mg->addNoValue('v', 'verbose', 'Display verbose messages');
$mg->addNoValue('', 'version', 'Show version');
echo $mg->doc();$ php resource/example.php
OPTIONS
-f, --format=<png|gif|svg>
Format to export
-r, --retry=[count]
Retry on error
-q=[yes|no]
Quiet mode
-v, --verbose
Display verbose messages
--version
Show version
$ composer install jawira/mini-getoptIf you liked this project, ⭐ star it on GitHub.
This library is licensed under the MIT license.
-
jawira/emoji-catalog
- Get access to +3000 emojis as class constants.
-
jawira/plantuml-encoding
- PlantUML encoding functions.
-
jawira/case-converter
- Convert strings between 13 naming conventions: Snake case, Camel case, Pascal case, Kebab case, Ada case, Train case, Cobol case, Macro case, Upper case, Lower case, Sentence case, Title case and Dot notation.
- more...