改名
This commit is contained in:
@@ -17,7 +17,6 @@ use Snowflake\Event;
|
|||||||
use Snowflake\Exception\ComponentException;
|
use Snowflake\Exception\ComponentException;
|
||||||
use Snowflake\Exception\NotFindClassException;
|
use Snowflake\Exception\NotFindClassException;
|
||||||
use Snowflake\Snowflake;
|
use Snowflake\Snowflake;
|
||||||
use Swoole\Coroutine;
|
|
||||||
use Throwable;
|
use Throwable;
|
||||||
use function Input;
|
use function Input;
|
||||||
|
|
||||||
@@ -445,7 +444,6 @@ class Node extends HttpService
|
|||||||
*/
|
*/
|
||||||
public function restructure(): static
|
public function restructure(): static
|
||||||
{
|
{
|
||||||
var_dump($this->handler);
|
|
||||||
if (empty($this->handler)) {
|
if (empty($this->handler)) {
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|||||||
+30
-17
@@ -13,6 +13,7 @@ use ReflectionClass;
|
|||||||
use Snowflake\Abstracts\BaseObject;
|
use Snowflake\Abstracts\BaseObject;
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
use Snowflake\Exception\NotFindClassException;
|
use Snowflake\Exception\NotFindClassException;
|
||||||
|
use Snowflake\Snowflake;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Container
|
* Class Container
|
||||||
@@ -160,34 +161,29 @@ class Container extends BaseObject
|
|||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
* @throws ReflectionException
|
* @throws ReflectionException
|
||||||
|
* @throws NotFindClassException
|
||||||
*/
|
*/
|
||||||
private function resolveDependencies($class): array
|
private function resolveDependencies($class): array
|
||||||
{
|
{
|
||||||
$dependencies = [];
|
$dependencies = [];
|
||||||
if (!class_exists($class)) {
|
if (!class_exists($class) || !($reflection = $this->resolveClass($class))) {
|
||||||
return [];
|
return [];
|
||||||
}
|
};
|
||||||
if (isset($this->_reflection[$class])) {
|
|
||||||
$reflection = $this->_reflection[$class];
|
|
||||||
} else {
|
|
||||||
$reflection = new ReflectionClass($class);
|
|
||||||
if (!$reflection->isInstantiable()) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
$this->_reflection[$class] = $reflection;
|
|
||||||
}
|
|
||||||
$constructs = $reflection->getConstructor();
|
$constructs = $reflection->getConstructor();
|
||||||
if (empty($constructs) || !is_array($constructs)) {
|
if (!($constructs instanceof \ReflectionMethod)) {
|
||||||
return [$reflection, []];
|
return [$reflection, []];
|
||||||
}
|
}
|
||||||
foreach ($constructs->getParameters() as $key => $param) {
|
foreach ($constructs->getParameters() as $key => $param) {
|
||||||
if (version_compare(PHP_VERSION, '5.6.0', '>=') && $param->isVariadic()) {
|
if ($param->isOptional()) {
|
||||||
break;
|
|
||||||
} else if ($param->isDefaultValueAvailable()) {
|
|
||||||
$dependencies[] = $param->getDefaultValue();
|
$dependencies[] = $param->getDefaultValue();
|
||||||
} else {
|
} else {
|
||||||
$c = $param->getClass();
|
match ($param->getType()) {
|
||||||
$dependencies[] = $c === NULL ? NULL : $c->getName();
|
'mixed' => $dependencies[] = $param->getDefaultValue(),
|
||||||
|
'string' => $dependencies[] = '',
|
||||||
|
'int' => $dependencies[] = 0,
|
||||||
|
'bool' => $dependencies[] = false,
|
||||||
|
default => $dependencies[] = Snowflake::createObject($param->getType())
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->_constructs[$class] = $dependencies;
|
$this->_constructs[$class] = $dependencies;
|
||||||
@@ -195,6 +191,23 @@ class Container extends BaseObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $class
|
||||||
|
* @return ReflectionClass|null
|
||||||
|
*/
|
||||||
|
private function resolveClass($class): ?ReflectionClass
|
||||||
|
{
|
||||||
|
if (!isset($this->_reflection[$class])) {
|
||||||
|
$reflection = new ReflectionClass($class);
|
||||||
|
if (!$reflection->isInstantiable()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$this->_reflection[$class] = $reflection;
|
||||||
|
}
|
||||||
|
return $this->_reflection[$class];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $class
|
* @param $class
|
||||||
* @return mixed
|
* @return mixed
|
||||||
|
|||||||
Reference in New Issue
Block a user