Skip to content
This repository was archived by the owner on Apr 7, 2025. It is now read-only.

Commit 146f654

Browse files
author
Andrey Helldar
authored
Merge pull request #33 from TheDragonCode/2.x
Added `toJson` method
2 parents ef1ad02 + 49ba86b commit 146f654

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

src/Concerns/To.php

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DragonCode\SimpleDataTransferObject\Concerns;
6+
7+
trait To
8+
{
9+
public function toJson($flags = JSON_UNESCAPED_UNICODE): string
10+
{
11+
return json_encode($this->toArray(), $flags);
12+
}
13+
}

src/DataTransferObject.php

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use DragonCode\SimpleDataTransferObject\Concerns\Castable;
99
use DragonCode\SimpleDataTransferObject\Concerns\From;
1010
use DragonCode\SimpleDataTransferObject\Concerns\Reflection;
11+
use DragonCode\SimpleDataTransferObject\Concerns\To;
1112
use DragonCode\Support\Concerns\Makeable;
1213
use DragonCode\Support\Facades\Helpers\Arr;
1314
use DragonCode\Support\Facades\Helpers\Str;
@@ -23,6 +24,7 @@ abstract class DataTransferObject implements Contract
2324
use From;
2425
use Makeable;
2526
use Reflection;
27+
use To;
2628

2729
protected $map = [];
2830

tests/Unit/ToJsonTest.php

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Tests\Unit;
6+
7+
use Tests\Fixtures\Simple;
8+
use Tests\TestCase;
9+
10+
class ToJsonTest extends TestCase
11+
{
12+
public function testToJson()
13+
{
14+
$object = new Simple([
15+
'foo' => $this->foo,
16+
'bar' => $this->bar,
17+
'baz' => $this->baz,
18+
]);
19+
20+
$this->assertJson($object->toJson());
21+
22+
$this->assertSame('{"foo":"Foo"}', $object->toJson());
23+
}
24+
}

0 commit comments

Comments
 (0)