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); }