This commit is contained in:
2021-08-04 17:51:33 +08:00
parent 3516a8bae0
commit d43bc87268
+5 -3
View File
@@ -107,6 +107,9 @@ class Container extends BaseObject
private function resolve($class, $constrict, $config): object
{
$reflect = $this->resolveDependencies($class);
if (!$reflect->isInstantiable()) {
throw new ReflectionException('Class ' . $class . ' cannot be instantiated');
}
$object = $this->newInstance($reflect, $constrict);
@@ -210,13 +213,12 @@ class Container extends BaseObject
/**
* @param $class
* @return ReflectionClass
* @throws ReflectionException
*/
private function resolveDependencies($class): ReflectionClass
{
$reflect = new ReflectionClass($class);
if ($reflect->isAbstract() || !$reflect->isInstantiable()) {
throw new ReflectionException('Class ' . $class . ' cannot be instantiated');
if ($reflect->isAbstract() || $reflect->isTrait() || $reflect->isInterface()) {
return $this->_reflection[$class] = $reflect;
}
$this->setPropertyNote($reflect);
$this->setTargetNote($reflect);