20250224#2

This commit is contained in:
User
2025-02-24 19:02:59 +03:00
parent 5b0c0bc7b4
commit 73c9af71ab
2 changed files with 2 additions and 18 deletions

View File

@@ -9,7 +9,6 @@ use ReflectionException;
class AbstractDataObject {
private static array $constructorEmptyAvailableClasses = [];
private static array $constructorNullAvailableClasses = [];
private static array $stack = [];
/**
@@ -49,10 +48,6 @@ class AbstractDataObject {
elseif(isset($value[$property->getName()])){
$object->{$property->getName()} = new ($property->getType()->getName())($value[$property->getName()]);
}
// Значение NULL и VO может принимать null в виде единственного значения
elseif(array_key_exists($property->getName(), $value) && self::isNullAvailable($property->getType()->getName())) {
$object->{$property->getName()} = new ($property->getType()->getName())(null);
}
// Значения нет и VO может быть без параметров
elseif(self::isEmptyAvailable($property->getType()->getName())) {
$object->{$property->getName()} = new ($property->getType()->getName())();
@@ -85,18 +80,6 @@ class AbstractDataObject {
}
/**
* @throws ReflectionException
*/
private static function isNullAvailable(string $class) : bool {
if(isset(self::$constructorNullAvailableClasses[$class])) return self::$constructorNullAvailableClasses[$class];
if(!$constructor = (new \ReflectionClass($class))->getConstructor()) return self::$constructorNullAvailableClasses[$class] = false;
$parameters = $constructor->getParameters();
if(count($parameters) == 1 && $parameters[0]->allowsNull()) return self::$constructorNullAvailableClasses[$class] = true;
return self::$constructorNullAvailableClasses[$class] = false;
}
/**
* @throws ReflectionException
*/
@@ -111,6 +94,7 @@ class AbstractDataObject {
return self::$constructorEmptyAvailableClasses[$class] = true;
}
/**
* @return array
*/