Ajout jsonserializable

This commit is contained in:
Gregory Letellier
2023-11-13 16:16:12 +01:00
parent bdb0a88e58
commit 43729579fa
4 changed files with 24 additions and 2 deletions

View File

@@ -5,9 +5,10 @@ namespace Kletellier\PdoWrapper;
use ArrayIterator;
use Countable;
use IteratorAggregate;
use JsonSerializable;
use Traversable;
class Collection implements IteratorAggregate, Countable
class Collection implements IteratorAggregate, Countable, JsonSerializable
{
private array $elements;
@@ -111,4 +112,9 @@ class Collection implements IteratorAggregate, Countable
{
return new ArrayIterator($this->elements);
}
public function jsonSerialize(): mixed
{
return $this->elements;
}
}

View File

@@ -2,7 +2,9 @@
namespace Kletellier\PdoWrapper;
class Model
use JsonSerializable;
class Model implements JsonSerializable
{
protected mixed $values;
protected array $updated;
@@ -153,4 +155,9 @@ class Model
return $table;
}
public function jsonSerialize(): mixed
{
return $this->values;
}
}

View File

@@ -67,6 +67,9 @@ test("collection", function () {
expect($collo)->toBeInstanceOf(Collection::class);
expect(count($collo))->toBe(2);
$json = json_encode($collo);
expect($json)->toBeJson();
$pluck = $collo->pluck("key");
expect($pluck)->toBeInstanceOf(Collection::class);
expect(count($pluck))->toBe(2);

View File

@@ -53,6 +53,12 @@ test("model find", function() {
$row->col1 = "test";
$res = $row->save();
expect($res)->toBe(true);
$json = json_encode($row);
expect($json)->toBeJson();
$obj = json_decode($json);
expect($obj->col1)->toBe("test");
});
test("querybuilder", function() {