Options can be of the form: --key=value --key -a -ab (equivalent of -a -b) When an option has no value, true will be used. If multiple key/value pairs with the same key are specified, the "key" value will be an array containing all the values. If "--" is detected, all folowing values will be treated as a single argument
Inheritance: implements consolekit\OptionsParser
 public function testParse()
 {
     $parser = new DefaultOptionsParser();
     list($args, $options) = $parser->parse(array('arg1'));
     $this->assertContains('arg1', $args);
     $this->assertEmpty($options);
     list($args, $options) = $parser->parse(array('arg1', 'arg2'));
     $this->assertContains('arg1', $args);
     $this->assertContains('arg2', $args);
     $this->assertEmpty($options);
     list($args, $options) = $parser->parse(array('--foo', 'arg1'));
     $this->assertContains('arg1', $args);
     $this->assertArrayHasKey('foo', $options);
     list($args, $options) = $parser->parse(array('--foo=bar', '--foobar'));
     $this->assertCount(2, $options);
     $this->assertArrayHasKey('foo', $options);
     $this->assertEquals('bar', $options['foo']);
     $this->assertArrayHasKey('foobar', $options);
     list($args, $options) = $parser->parse(array('--foo=bar', '--foo=baz'));
     $this->assertArrayHasKey('foo', $options);
     $this->assertInternalType('array', $options['foo']);
     $this->assertContains('bar', $options['foo']);
     $this->assertContains('baz', $options['foo']);
     list($args, $options) = $parser->parse(array('-a', '-bc'));
     $this->assertCount(3, $options);
     $this->assertArrayHasKey('a', $options);
     $this->assertArrayHasKey('b', $options);
     $this->assertArrayHasKey('c', $options);
 }
Example #2
0
 public function parse(array $argv)
 {
     if (!isset($this->config)) {
         $this->parseConfigFile();
     }
     list($args, $options) = parent::parse($argv);
     $type = $args[0];
     if (isset($this->config[$type])) {
         $config = $this->config[$type];
         $options = array_replace_recursive($config['options'], $options);
     }
     return array($args, $options);
 }