23
23
use function file_put_contents ;
24
24
use InvalidArgumentException ;
25
25
use Laravel \SerializableClosure \Support \ReflectionClosure ;
26
+ use ReflectionFunction ;
27
+ use ReflectionFunctionAbstract ;
26
28
use function rename ;
27
29
use function sprintf ;
28
30
use function tempnam ;
29
31
use function unlink ;
30
- use ReflectionFunction ;
31
- use ReflectionFunctionAbstract ;
32
32
33
33
/**
34
34
* Compiles the container into PHP code much more optimized for performances.
@@ -294,9 +294,7 @@ private function compileDefinition(string $entryName, Definition $definition) :
294
294
$ defaultParameters
295
295
);
296
296
297
- $ definitionParameters = array_map (function ($ value ) {
298
- return $ this ->compileValue ($ value );
299
- }, $ resolvedParameters );
297
+ $ definitionParameters = array_map (fn ($ value ) => $ this ->compileValue ($ value ), $ resolvedParameters );
300
298
301
299
$ code = sprintf (
302
300
'return (%s)(%s); ' ,
@@ -440,7 +438,7 @@ public function resolveFactoryParameters(
440
438
array $ definitionParameters = [],
441
439
array $ parametersByClassName = [],
442
440
array $ defaultParameters = []
443
- ) {
441
+ ) : array {
444
442
$ resolvedParameters = [];
445
443
$ parameters = $ reflection ->getParameters ();
446
444
@@ -451,19 +449,20 @@ public function resolveFactoryParameters(
451
449
continue ;
452
450
}
453
451
454
- $ parameterClass = $ parameter ->getClass ();
455
- if (!$ parameterClass ) {
452
+ $ parameterType = $ parameter ->getType ();
453
+ if (!$ parameterType ) {
456
454
if (array_key_exists ($ index , $ defaultParameters )) {
457
455
// take default parameters, when no typehint
458
456
$ resolvedParameters [$ index ] = $ defaultParameters [$ index ];
459
457
}
460
458
continue ;
461
459
}
462
460
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 ];
465
464
} else {
466
- $ resolvedParameters [$ index ] = new Reference ($ parameterClass -> name );
465
+ $ resolvedParameters [$ index ] = new Reference ($ parameterTypeName );
467
466
}
468
467
}
469
468
0 commit comments