Skip to content

Commit 3ed2ab3

Browse files
committed
php8-mod: Optimize compiled factory definitions
1 parent d57f0fc commit 3ed2ab3

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

src/Compiler/Compiler.php

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -295,9 +295,7 @@ private function compileDefinition(string $entryName, Definition $definition) :
295295
$defaultParameters
296296
);
297297

298-
$definitionParameters = array_map(function ($value) {
299-
return $this->compileValue($value);
300-
}, $resolvedParameters);
298+
$definitionParameters = array_map(fn ($value) => $this->compileValue($value), $resolvedParameters);
301299

302300
$code = sprintf(
303301
'return (%s)(%s);',
@@ -446,7 +444,7 @@ public function resolveFactoryParameters(
446444
array $definitionParameters = [],
447445
array $parametersByClassName = [],
448446
array $defaultParameters = []
449-
) {
447+
) : array {
450448
$resolvedParameters = [];
451449
$parameters = $reflection->getParameters();
452450

@@ -457,19 +455,20 @@ public function resolveFactoryParameters(
457455
continue;
458456
}
459457

460-
$parameterClass = $parameter->getClass();
461-
if (!$parameterClass) {
458+
$parameterType = $parameter->getType();
459+
if (!$parameterType) {
462460
if (array_key_exists($index, $defaultParameters)) {
463461
// take default parameters, when no typehint
464462
$resolvedParameters[$index] = $defaultParameters[$index];
465463
}
466464
continue;
467465
}
468466

469-
if (isset($parametersByClassName[$parameterClass->name])) {
470-
$resolvedParameters[$index] = $parametersByClassName[$parameterClass->name];
467+
$parameterTypeName = $parameterType->getName();
468+
if (isset($parametersByClassName[$parameterTypeName])) {
469+
$resolvedParameters[$index] = $parametersByClassName[$parameterTypeName];
471470
} else {
472-
$resolvedParameters[$index] = new Reference($parameterClass->name);
471+
$resolvedParameters[$index] = new Reference($parameterTypeName);
473472
}
474473
}
475474

0 commit comments

Comments
 (0)