diff --git a/src/Container.php b/src/Container.php index cc3f8d9..8f0d162 100755 --- a/src/Container.php +++ b/src/Container.php @@ -76,13 +76,10 @@ public function get(string $id, ...$parameters): mixed /** * 构造器注入:按参数类型从容器解析依赖,未注册的类递归构建。 + * + * @param array $resolving 内部递归使用,用于循环依赖检测 */ - public function make(string $class): object - { - return $this->build($class, []); - } - - private function build(string $class, array $resolving): object + public function make(string $class, array $resolving = []): object { if ($this->has($class)) { return $this->get($class); @@ -114,7 +111,7 @@ private function build(string $class, array $resolving): object if ($type instanceof ReflectionNamedType && !$type->isBuiltin()) { $name = $type->getName(); - $arguments[] = $this->has($name) ? $this->get($name) : $this->build($name, $resolving); + $arguments[] = $this->has($name) ? $this->get($name) : $this->make($name, $resolving); continue; }