diff --git a/src/Filter.php b/src/Filter.php index 0f12325..d7f7949 100644 --- a/src/Filter.php +++ b/src/Filter.php @@ -353,7 +353,7 @@ public static function esc(string $string): string } /** - * Returns JSON object from array. + * Returns Data object from array. */ public static function data(Data|array $data): Data { @@ -361,6 +361,18 @@ public static function data(Data|array $data): Data return $data; } + return new Data($data); + } + + /** + * Returns JSON object from array. + */ + public static function json(JSON|array $data): JSON + { + if ($data instanceof JSON) { + return $data; + } + return new JSON($data); } diff --git a/tests/FilterTest.php b/tests/FilterTest.php index 933912b..bdb95e6 100644 --- a/tests/FilterTest.php +++ b/tests/FilterTest.php @@ -16,6 +16,7 @@ namespace JBZoo\PHPUnit; +use JBZoo\Data\Data; use JBZoo\Data\JSON; use JBZoo\Utils\Filter; @@ -342,10 +343,23 @@ public function testData(): void 'key' => 'value', ]; - $obj = new JSON($data); + $obj = new Data($data); isSame($obj, Filter::data($obj)); isSame($data, (array)Filter::data($obj)); isSame($data, (array)Filter::data($data)); } + + public function testJson(): void + { + $data = [ + 'key' => 'value', + ]; + + $obj = new JSON($data); + + isSame($obj, Filter::json($obj)); + isSame($data, (array)Filter::json($obj)); + isSame($data, (array)Filter::json($data)); + } }