20250224#1

This commit is contained in:
User
2025-02-24 18:33:53 +03:00
parent dfbcfdf321
commit 5b0c0bc7b4
6 changed files with 9 additions and 14 deletions

View File

@@ -3,11 +3,11 @@
namespace Rmphp\Storage; namespace Rmphp\Storage;
use Rmphp\Storage\Entity\EntityInterface; use Rmphp\Storage\Entity\EntityInterface;
use Rmphp\Storage\Exception\RepositoryException;
use Rmphp\Storage\Mysql\MysqlRepositoryInterface; use Rmphp\Storage\Mysql\MysqlRepositoryInterface;
use Rmphp\Storage\Mysql\MysqlResultData; use Rmphp\Storage\Mysql\MysqlResultData;
use Rmphp\Storage\Mysql\MysqlStorageInterface; use Rmphp\Storage\Mysql\MysqlStorageInterface;
use Rmphp\Storage\Repository\AbstractRepository; use Rmphp\Storage\Repository\AbstractRepository;
use Rmphp\Storage\Repository\RepositoryException;
abstract class AbstractMysqlRepository extends AbstractRepository implements MysqlRepositoryInterface { abstract class AbstractMysqlRepository extends AbstractRepository implements MysqlRepositoryInterface {

View File

@@ -12,7 +12,6 @@ class AbstractDataObject {
private static array $constructorNullAvailableClasses = []; private static array $constructorNullAvailableClasses = [];
private static array $stack = []; private static array $stack = [];
//TODO Имя и Папка где лежит и Зависимость
/** /**
* @param ReflectionClass $class * @param ReflectionClass $class
* @param object $object * @param object $object
@@ -73,9 +72,6 @@ class AbstractDataObject {
elseif(isset($value[$property->getName()])){ elseif(isset($value[$property->getName()])){
$object->{$property->getName()} = $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 ?? []; self::$stack[$object::class." #".spl_object_id($object)]['properties'] = $prop ?? [];

View File

@@ -1,6 +1,6 @@
<?php <?php
namespace Rmphp\Storage\Repository; namespace Rmphp\Storage\Exception;
use Throwable; use Throwable;

View File

@@ -9,7 +9,7 @@
namespace Rmphp\Storage\Mysql; namespace Rmphp\Storage\Mysql;
use Rmphp\Storage\Entity\EntityInterface; use Rmphp\Storage\Entity\EntityInterface;
use Rmphp\Storage\Repository\RepositoryException; use Rmphp\Storage\Exception\RepositoryException;
use Rmphp\Storage\Repository\RepositoryInterface; use Rmphp\Storage\Repository\RepositoryInterface;
interface MysqlRepositoryInterface extends RepositoryInterface { interface MysqlRepositoryInterface extends RepositoryInterface {

View File

@@ -7,6 +7,7 @@ use ReflectionClass;
use ReflectionException; use ReflectionException;
use Rmphp\Storage\Component\AbstractDataObject; use Rmphp\Storage\Component\AbstractDataObject;
use Rmphp\Storage\Entity\ValueObjectInterface; use Rmphp\Storage\Entity\ValueObjectInterface;
use Rmphp\Storage\Exception\RepositoryException;
abstract class AbstractRepository extends AbstractDataObject implements RepositoryInterface { abstract class AbstractRepository extends AbstractDataObject implements RepositoryInterface {
@@ -26,10 +27,8 @@ abstract class AbstractRepository extends AbstractDataObject implements Reposito
$fieldValue[$property->getName()] = $object->{'get'.ucfirst($property->getName())}($property->getValue($object)); $fieldValue[$property->getName()] = $object->{'get'.ucfirst($property->getName())}($property->getValue($object));
} }
elseif($property->hasType() && class_exists($property->getType()->getName()) && $property->getValue($object) instanceof ValueObjectInterface){ elseif($property->hasType() && class_exists($property->getType()->getName()) && $property->getValue($object) instanceof ValueObjectInterface){
$voClass = $property->getType()->getName(); $value = $property->getValue($object)->getValue();
if(!isset(self::$classes[$voClass])) self::$classes[$voClass] = new ReflectionClass($voClass); if(isset($value)) $fieldValue[$property->getName()] = $value;
$dd[$property->getName()] = self::$classes[$voClass];
$fieldValue[$property->getName()] = $property->getValue($object)->getValue();
} }
elseif(is_bool($property->getValue($object))){ elseif(is_bool($property->getValue($object))){
$fieldValue[$property->getName()] = (int) $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); $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()]; $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 ?? []; return (isset($method)) ? array_map($method, $out ?? []) : $out ?? [];
} }
catch (ReflectionException $exception) { catch (ReflectionException $exception) {

View File

@@ -9,6 +9,8 @@
namespace Rmphp\Storage\Repository; namespace Rmphp\Storage\Repository;
use Rmphp\Storage\Exception\RepositoryException;
interface RepositoryInterface { interface RepositoryInterface {
/** /**