From aba089db5e7014dc3dc7fc4619c4a77ddcadc088 Mon Sep 17 00:00:00 2001 From: User Date: Tue, 18 Feb 2025 02:39:16 +0300 Subject: [PATCH] 20250218#1 --- README.md | 2 +- application/base/Application/AbstractDTO.php | 22 ++++++++++++++++++++ composer.json | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d14b882..5241c6f 100644 --- a/README.md +++ b/README.md @@ -9,5 +9,5 @@ composer create-project rmphp/skeleton project-name ``` ```bash -composer create-project rmphp/skeleton:"^4.3" project-name +composer create-project rmphp/skeleton:"^4.4" project-name ``` diff --git a/application/base/Application/AbstractDTO.php b/application/base/Application/AbstractDTO.php index 01be224..fc2ad0c 100644 --- a/application/base/Application/AbstractDTO.php +++ b/application/base/Application/AbstractDTO.php @@ -6,6 +6,27 @@ use ReflectionClass; abstract class AbstractDTO { + /** + * @param object $data + * @return static + */ + static function fromObject(object $data) : static { + return static::fromArray(get_object_vars($data)); + } + + + /** + * @param array|object ...$data + * @return static + */ + static function fromData(array|object ...$data) : static { + $array = array_map(function($item) { + return (is_object($item)) ? get_object_vars($item) : $item; + }, $data); + return static::fromArray(array_merge(...$array)); + } + + /** * @param array $data * @return static @@ -24,4 +45,5 @@ abstract class AbstractDTO { } return $self; } + } diff --git a/composer.json b/composer.json index 6023b34..743b379 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,7 @@ "rmphp/router": "^1.2", "rmphp/session": "^1.1", "rmphp/redis": "^1.0", - "rmphp/storage": "^5.0", + "rmphp/storage": "^6.0", "symfony/dotenv": "^6.2" }, "autoload": {