From 2240b46aa83264d9d0be3449843401718fe364c1 Mon Sep 17 00:00:00 2001 From: "as2252258@163.com" Date: Tue, 23 Feb 2021 01:06:07 +0800 Subject: [PATCH] modify --- System/Di/Container.php | 13 ++++++------- System/Snowflake.php | 4 +++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/System/Di/Container.php b/System/Di/Container.php index ba65da25..636d804b 100644 --- a/System/Di/Container.php +++ b/System/Di/Container.php @@ -71,20 +71,20 @@ class Container extends BaseObject { if (isset($this->_singletons[$class])) { return $this->_singletons[$class]; - } else if (!isset($this->_constructs[$class])) { + } + if (!isset($this->_constructs[$class])) { return $this->resolve($class, $constrict, $config); } $definition = $this->_constructs[$class]; if (is_callable($definition, TRUE)) { return call_user_func($definition, $this, $constrict, $config); } else if (is_array($definition)) { - $object = $this->resolveDefinition($definition, $class, $config, $constrict); + return $this->resolveDefinition($definition, $class, $config, $constrict); } else if (is_object($definition)) { return $this->_singletons[$class] = $definition; } else { throw new NotFindClassException($class); } - return $this->_singletons[$class] = $object; } /** @@ -112,7 +112,7 @@ class Container extends BaseObject } else { $object = $this->get($class, $definition, $config); } - return $object; + return $this->_singletons[$class] = $object; } /** @@ -127,7 +127,7 @@ class Container extends BaseObject private function resolve($class, $constrict, $config): object { /** @var ReflectionClass $reflect */ - list($reflect, $dependencies) = $this->resolveDependencies($class); + [$reflect, $dependencies] = $this->resolveDependencies($class); foreach ($constrict as $index => $param) { $dependencies[$index] = $param; } @@ -171,7 +171,7 @@ class Container extends BaseObject } $constructs = $reflection->getConstructor(); if ($constructs === null || count($constructs->getParameters()) < 1) { - return [$reflection, $this->_constructs[$class] = ['class' => $class]]; + return [$reflection, $this->_constructs[$class] = []]; } $dependencies = []; foreach ($constructs->getParameters() as $key => $param) { @@ -182,7 +182,6 @@ class Container extends BaseObject $dependencies[] = $c === NULL ? NULL : $c->getName(); } } - var_dump($dependencies); $this->_constructs[$class] = $dependencies; return [$reflection, $dependencies]; } diff --git a/System/Snowflake.php b/System/Snowflake.php index 42f95471..db5964b2 100644 --- a/System/Snowflake.php +++ b/System/Snowflake.php @@ -99,7 +99,9 @@ class Snowflake if (!isset($className['class']) || empty($className['class'])) { throw new Exception('Object configuration must be an array containing a "class" element.'); } - return static::$container->get($className['class'], $construct, $className); + $class = $className['class']; + unset($className['class']); + return static::$container->get($class, $construct, $className); } else if (is_callable($className, TRUE)) { return call_user_func($className, $construct); } else {