https://github.com/nathan-fiscaletti/parameterparser
✔️An advanced parameter parser for PHP
https://github.com/nathan-fiscaletti/parameterparser
cli command-line parameters php php-cli
Last synced: 4 months ago
JSON representation
✔️An advanced parameter parser for PHP
- Host: GitHub
- URL: https://github.com/nathan-fiscaletti/parameterparser
- Owner: nathan-fiscaletti
- License: mit
- Created: 2016-11-07T00:43:03.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2019-07-14T00:56:26.000Z (over 6 years ago)
- Last Synced: 2025-04-09T20:06:33.545Z (11 months ago)
- Topics: cli, command-line, parameters, php, php-cli
- Language: PHP
- Homepage:
- Size: 137 KB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: ReadMe.md
- License: LICENSE
Awesome Lists containing this project
README
# Parameter Parser
> **Parameter Parser** is a simple library used to parse intricate parameters from an array of strings.
> **Hint**: Parameter Parser is available through [Composer](https://getcomposer.org). `composer require nafisc/parameterparser`.
[](https://styleci.io/repos/73029011)
[](https://packagist.org/packages/nafisc/parameterparser)
[](https://packagist.org/packages/nafisc/parameterparser)
[](https://packagist.org/packages/nafisc/parameterparser)
[](https://packagist.org/packages/nafisc/parameterparser)
[Documentation](./docs/) - [Advanced Code Examples](./examples/Example1.md) - [Looking for the Python version?](https://github.com/nathan-fiscaletti/parameterparser-py)
### Features
* Parse command line parameters.
* Assign aliases to parameters.
* Custom closures for each command line parameter.
* Variadic closure support for arguments taking more than one value.
* Customize the way the command line is parsed.
### Example Usage
```php
// Initialize a new Cluster
$parameters = new Cluster();
// Add a Parameter to the Cluster
$parameter = parameter('-', 'name', function ($name) {
return $name;
});
$parameter->setRequired(true)
->setDescription('Your name.');
$parameters->add($parameter);
// Create a new Parser using the Cluster
$parser = new Parser($argv, $parameters);
// Parse the parameters using the Parser.
$results = $parser->parse();
// Verify that the parameters were valid after parsing.
if (! $parser->isValid()) {
// Since it was not valid, output usage.
$parameters->printFullUsage(
"Parameter Parser",
"An advanced parameter parser for PHP",
"v1.0.0"
);
} else {
// Retrieve the name from the results
$name = $results['name'];
// Output the name
echo 'Your name is ' . $name . PHP_EOL;
}
```
### Output
```
~/ php test.php -name 'Nathan Fiscaletti'
Your name is Nathan Fiscaletti
```