Skip to content

Commit

Permalink
ParametersExtension: generates 'match'
Browse files Browse the repository at this point in the history
  • Loading branch information
dg committed Sep 28, 2023
1 parent b38430b commit def217b
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/DI/Extensions/ParametersExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,14 +87,14 @@ public function afterCompile(Nette\PhpGenerator\ClassType $class)
$class->addMember($getAll);
$resolver = new Nette\DI\Resolver($builder);
$generator = new Nette\DI\PhpGenerator($builder);
$getOne->addBody('switch (true) {');
$getOne->addBody('return match($key) {');
foreach ($this->dynamicParams as $key => $foo) {
$value = Nette\DI\Helpers::expand($this->config[$key] ?? null, $builder->parameters);
$value = $resolver->completeArguments(Nette\DI\Helpers::filterArguments([$value]));
$getOne->addBody("\tcase \$key === ?: return ?;", [$key, $generator->convertArguments($value)[0]]);
$getOne->addBody("\t? => ?,", [$key, $generator->convertArguments($value)[0]]);
$getAll->addBody('$this->getParameter(?);', [$key]);
}
$getOne->addBody("\tdefault: parent::getDynamicParameter(\$key);\n};");
$getOne->addBody("\tdefault => parent::getDynamicParameter(\$key),\n};");
$getAll->addBody('return parent::getParameters();');

foreach ($this->dynamicValidators as [$param, $expected]) {
Expand Down

0 comments on commit def217b

Please sign in to comment.