From e7a8a32b733c5de896df9acbc0925aa3088f3545 Mon Sep 17 00:00:00 2001 From: sunxyw <31698606+sunxyw@users.noreply.github.com> Date: Fri, 29 Apr 2022 12:22:34 +0800 Subject: [PATCH] support container call with unnamed parameters (#103) --- src/ZM/Container/BoundMethod.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ZM/Container/BoundMethod.php b/src/ZM/Container/BoundMethod.php index fc9f261f..b2a89329 100644 --- a/src/ZM/Container/BoundMethod.php +++ b/src/ZM/Container/BoundMethod.php @@ -51,7 +51,13 @@ class BoundMethod { $dependencies = []; - foreach (ReflectionUtil::getCallReflector($callback)->getParameters() as $parameter) { + foreach (ReflectionUtil::getCallReflector($callback)->getParameters() as $i => $parameter) { + if (isset($parameters[$i]) && $parameter->hasType() && ($type = $parameter->getType())) { + if ($type instanceof \ReflectionNamedType && gettype($parameters[$i]) === $type->getName()) { + $dependencies[] = $parameters[$i]; + continue; + } + } static::addDependencyForCallParameter($container, $parameter, $parameters, $dependencies); }