This commit is contained in:
as2252258@163.com
2021-02-23 01:06:07 +08:00
parent bcc35ab9cf
commit 2240b46aa8
2 changed files with 9 additions and 8 deletions
+6 -7
View File
@@ -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];
}
+3 -1
View File
@@ -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 {