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