This commit is contained in:
2021-02-22 19:07:34 +08:00
parent 491cfd38ff
commit 0467e3905a
2 changed files with 17 additions and 12 deletions
+2 -1
View File
@@ -11,6 +11,7 @@ namespace Snowflake\Abstracts;
use Exception;
use JetBrains\PhpStorm\Pure;
use Snowflake\Error\Logger;
use Snowflake\Snowflake;
@@ -45,7 +46,7 @@ class BaseObject implements Configure
/**
* @return string
*/
public static function className(): string
#[Pure] public static function className(): string
{
return get_called_class();
}
+9 -5
View File
@@ -174,8 +174,7 @@ class Container extends BaseObject
return [$reflection, []];
}
foreach ($constructs->getParameters() as $key => $param) {
var_dump($class);
$dependencies[] = $this->resolveDefaultValue($param);
$dependencies[] = $this->resolveDefaultValue($param, $class);
}
$this->_constructs[$class] = $dependencies;
return [$reflection, $dependencies];
@@ -188,19 +187,24 @@ class Container extends BaseObject
* @throws NotFindClassException
* @throws ReflectionException
*/
private function resolveDefaultValue(\ReflectionParameter $param): mixed
private function resolveDefaultValue(\ReflectionParameter $param, $class): mixed
{
if ($param->isOptional()) {
return $param->getDefaultValue();
}
return match ($param->getType()) {
try {
return match ($type = $param->getType()) {
'mixed' => $param->getDefaultValue(),
'string' => '',
'int', 'float' => 0,
'bool' => false,
'', null, 'object' => NULL,
default => Snowflake::createObject($param->getType())
default => Snowflake::createObject($type)
};
} catch (\Throwable $throwable) {
var_dump($class, $throwable->getMessage());
return null;
}
}