From 5b0c0bc7b4ef5b716d4abc1be6135af043c32fb1 Mon Sep 17 00:00:00 2001 From: User Date: Mon, 24 Feb 2025 18:33:53 +0300 Subject: [PATCH] 20250224#1 --- src/AbstractMysqlRepository.php | 2 +- src/Component/AbstractDataObject.php | 4 ---- src/{Repository => Exception}/RepositoryException.php | 2 +- src/Mysql/MysqlRepositoryInterface.php | 2 +- src/Repository/AbstractRepository.php | 11 ++++------- src/Repository/RepositoryInterface.php | 2 ++ 6 files changed, 9 insertions(+), 14 deletions(-) rename src/{Repository => Exception}/RepositoryException.php (88%) diff --git a/src/AbstractMysqlRepository.php b/src/AbstractMysqlRepository.php index 5a4b70f..79ff6ff 100644 --- a/src/AbstractMysqlRepository.php +++ b/src/AbstractMysqlRepository.php @@ -3,11 +3,11 @@ namespace Rmphp\Storage; use Rmphp\Storage\Entity\EntityInterface; +use Rmphp\Storage\Exception\RepositoryException; use Rmphp\Storage\Mysql\MysqlRepositoryInterface; use Rmphp\Storage\Mysql\MysqlResultData; use Rmphp\Storage\Mysql\MysqlStorageInterface; use Rmphp\Storage\Repository\AbstractRepository; -use Rmphp\Storage\Repository\RepositoryException; abstract class AbstractMysqlRepository extends AbstractRepository implements MysqlRepositoryInterface { diff --git a/src/Component/AbstractDataObject.php b/src/Component/AbstractDataObject.php index 7e44821..cb107a3 100644 --- a/src/Component/AbstractDataObject.php +++ b/src/Component/AbstractDataObject.php @@ -12,7 +12,6 @@ class AbstractDataObject { private static array $constructorNullAvailableClasses = []; private static array $stack = []; - //TODO Имя и Папка где лежит и Зависимость /** * @param ReflectionClass $class * @param object $object @@ -73,9 +72,6 @@ class AbstractDataObject { elseif(isset($value[$property->getName()])){ $object->{$property->getName()} = $value[$property->getName()]; } - elseif($property->getType()->allowsNull()){ - $object->{$property->getName()} = null; - } } } self::$stack[$object::class." #".spl_object_id($object)]['properties'] = $prop ?? []; diff --git a/src/Repository/RepositoryException.php b/src/Exception/RepositoryException.php similarity index 88% rename from src/Repository/RepositoryException.php rename to src/Exception/RepositoryException.php index 8adfb77..f32707d 100644 --- a/src/Repository/RepositoryException.php +++ b/src/Exception/RepositoryException.php @@ -1,6 +1,6 @@ getName()] = $object->{'get'.ucfirst($property->getName())}($property->getValue($object)); } elseif($property->hasType() && class_exists($property->getType()->getName()) && $property->getValue($object) instanceof ValueObjectInterface){ - $voClass = $property->getType()->getName(); - if(!isset(self::$classes[$voClass])) self::$classes[$voClass] = new ReflectionClass($voClass); - $dd[$property->getName()] = self::$classes[$voClass]; - $fieldValue[$property->getName()] = $property->getValue($object)->getValue(); + $value = $property->getValue($object)->getValue(); + if(isset($value)) $fieldValue[$property->getName()] = $value; } elseif(is_bool($property->getValue($object))){ $fieldValue[$property->getName()] = (int) $property->getValue($object); @@ -38,12 +37,10 @@ abstract class AbstractRepository extends AbstractDataObject implements Reposito $fieldValue[$property->getName()] = $property->getValue($object); } - if(array_key_exists($property->getName(), $fieldValue)) { + if(false !== $fieldValue[$property->getName()]) { $out[strtolower(preg_replace("'([A-Z])'", "_$1", $property->getName()))] = $fieldValue[$property->getName()]; } } - //dd($fieldValue); - //dd($dd, self::$classes); return (isset($method)) ? array_map($method, $out ?? []) : $out ?? []; } catch (ReflectionException $exception) { diff --git a/src/Repository/RepositoryInterface.php b/src/Repository/RepositoryInterface.php index 59306e9..45aaa2b 100644 --- a/src/Repository/RepositoryInterface.php +++ b/src/Repository/RepositoryInterface.php @@ -9,6 +9,8 @@ namespace Rmphp\Storage\Repository; +use Rmphp\Storage\Exception\RepositoryException; + interface RepositoryInterface { /**