Parse an array of arguments and call matching setters and/or merge with default arguments.
- PHP >= 7.1
Use composer to add the package to your dependencies:
composer require palmtree/argparser
<?php
use Palmtree\ArgParser\ArgParser;
class SomeClass {
public static $defaultArgs = [
'force' => false,
];
private $name;
private $args = [];
public function __construct($args = []) {
$parser = new ArgParser($args);
$parser->parseSetters($this);
$this->args = $parser->resolveOptions(static::$defaultArgs);
}
public function setName($name) {
$this->name = $name;
}
}
<?php
// Calls $obj->setName('Andy') and sets the force arg to true
$obj = new SomeClass([
'name' => 'Andy',
'force' => true,
]);
Released under the MIT license