2323use function file_put_contents ;
2424use InvalidArgumentException ;
2525use Laravel \SerializableClosure \Support \ReflectionClosure ;
26+ use ReflectionFunction ;
27+ use ReflectionFunctionAbstract ;
2628use function rename ;
2729use function sprintf ;
2830use function tempnam ;
2931use function unlink ;
30- use ReflectionFunction ;
31- use ReflectionFunctionAbstract ;
3232
3333/**
3434 * Compiles the container into PHP code much more optimized for performances.
@@ -294,9 +294,7 @@ private function compileDefinition(string $entryName, Definition $definition) :
294294 $ defaultParameters
295295 );
296296
297- $ definitionParameters = array_map (function ($ value ) {
298- return $ this ->compileValue ($ value );
299- }, $ resolvedParameters );
297+ $ definitionParameters = array_map (fn ($ value ) => $ this ->compileValue ($ value ), $ resolvedParameters );
300298
301299 $ code = sprintf (
302300 'return (%s)(%s); ' ,
@@ -440,7 +438,7 @@ public function resolveFactoryParameters(
440438 array $ definitionParameters = [],
441439 array $ parametersByClassName = [],
442440 array $ defaultParameters = []
443- ) {
441+ ) : array {
444442 $ resolvedParameters = [];
445443 $ parameters = $ reflection ->getParameters ();
446444
@@ -451,19 +449,20 @@ public function resolveFactoryParameters(
451449 continue ;
452450 }
453451
454- $ parameterClass = $ parameter ->getClass ();
455- if (!$ parameterClass ) {
452+ $ parameterType = $ parameter ->getType ();
453+ if (!$ parameterType ) {
456454 if (array_key_exists ($ index , $ defaultParameters )) {
457455 // take default parameters, when no typehint
458456 $ resolvedParameters [$ index ] = $ defaultParameters [$ index ];
459457 }
460458 continue ;
461459 }
462460
463- if (isset ($ parametersByClassName [$ parameterClass ->name ])) {
464- $ resolvedParameters [$ index ] = $ parametersByClassName [$ parameterClass ->name ];
461+ $ parameterTypeName = $ parameterType ->getName ();
462+ if (isset ($ parametersByClassName [$ parameterTypeName ])) {
463+ $ resolvedParameters [$ index ] = $ parametersByClassName [$ parameterTypeName ];
465464 } else {
466- $ resolvedParameters [$ index ] = new Reference ($ parameterClass -> name );
465+ $ resolvedParameters [$ index ] = new Reference ($ parameterTypeName );
467466 }
468467 }
469468
0 commit comments