From 3d92d3b07fc8bf1ca302c3dfb98f30159e53851d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Tue, 26 Oct 2021 10:22:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kiri-engine/Di/Container.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/kiri-engine/Di/Container.php b/kiri-engine/Di/Container.php index dc97784e..0b6f21c2 100644 --- a/kiri-engine/Di/Container.php +++ b/kiri-engine/Di/Container.php @@ -57,7 +57,7 @@ class Container extends BaseObject implements ContainerInterface /** @var array|string[] */ private array $_interfaces = [ - LoggerInterface::class => Logger::class + LoggerInterface::class => Logger::class ]; @@ -112,8 +112,12 @@ class Container extends BaseObject implements ContainerInterface */ public function setBindings(string $interface, $object) { - $this->_singletons[$interface] = $object; - $this->_interfaces[$interface] = get_class($object); + if (is_string($object)) { + $this->_interfaces[$interface] = $object; + } else { + $this->_interfaces[$interface] = get_class($object); + $this->_singletons[$interface] = $object; + } } @@ -253,7 +257,7 @@ class Container extends BaseObject implements ContainerInterface if ($reflect->isAbstract() || $reflect->isTrait() || $reflect->isInterface()) { return $this->_reflection[$class] = $reflect; } - $construct = NoteManager::resolveTarget($reflect); + $construct = NoteManager::resolveTarget($reflect); if (!empty($construct) && $construct->getNumberOfParameters() > 0) { $this->_constructs[$class] = $construct; }