/** * @param InvokableParams $params * @return array */ private function getBuiltOptions(InvokableParams $params) { $values_callback = $params->getValuesCallback(); $cli_options = $values_callback($params->getName()); $built_options = []; foreach ($cli_options as $option_name => $option_value) { $built_options[] = call_user_func($this->option_builder, $option_name, $option_value); } return $built_options; }
/** * @param InvokableParams $params */ protected function process(InvokableParams $params) { $name = $params->getName(); $values_callback = $params->getValuesCallback(); $args = $values_callback($name); if (!is_array($args)) { $new_args = $this->escapeShellArg($args); } else { $new_args = []; foreach ($args as $key => $value) { $new_args[$key] = $this->escapeShellArg($value); } } $params->setValue($new_args); }
/** * @covers Lstr\Sprintf\Middleware\InvokableParams::__construct * @covers Lstr\Sprintf\Middleware\InvokableParams::getOption * @covers Lstr\Sprintf\Middleware\InvokableParams::setOption */ public function testAnOptionCanBeSet() { $options = ['a' => 1, 'b' => 23, 'c' => 456]; $params = new InvokableParams('not-so-important', function () { }, $options); $params->setOption('hi', 'there'); $this->assertEquals('there', $params->getOption('hi')); }