20250224#1
This commit is contained in:
@@ -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 {
|
||||||
|
|
||||||
|
|||||||
@@ -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 ?? [];
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Rmphp\Storage\Repository;
|
namespace Rmphp\Storage\Exception;
|
||||||
|
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
namespace Rmphp\Storage\Repository;
|
namespace Rmphp\Storage\Repository;
|
||||||
|
|
||||||
|
|
||||||
|
use Rmphp\Storage\Exception\RepositoryException;
|
||||||
|
|
||||||
interface RepositoryInterface {
|
interface RepositoryInterface {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user