Skip to content

Commit de52b13

Browse files
Merge pull request #8 from MarkRedeman/fix-hydration-for-objects-without-properties
Fix hydration of classes without properties
2 parents 85a5583 + 235c028 commit de52b13

3 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/Hydration/HydrateUsingReflection.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ private function propertiesOf($object)
3535
$className = get_class($object);
3636

3737
if (!isset($this->properties[$className])) {
38+
$this->properties[$className] = [];
3839
foreach ((new \ReflectionObject($object))->getProperties() as $property) {
3940
/** @var \ReflectionProperty $property */
4041
$property->setAccessible(true);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace BroadwaySerialization\Test\Hydrate\Fixtures;
4+
5+
class ClassWithoutProperties
6+
{
7+
}

test/Hydrate/HydrateUsingReflectionTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace BroadwaySerialization\Test\Hydrate;
44

55
use BroadwaySerialization\Hydration\HydrateUsingReflection;
6+
use BroadwaySerialization\Test\Hydrate\Fixtures\ClassWithoutProperties;
67
use BroadwaySerialization\Test\Hydrate\Fixtures\ClassWithPrivateProperties;
78

89
class HydrateUsingReflectionTest extends \PHPUnit_Framework_TestCase
@@ -49,4 +50,17 @@ public function it_ignores_extra_keys_in_the_data_array()
4950

5051
$this->assertSame('bar', $object->foo());
5152
}
53+
54+
/**
55+
* @test
56+
*/
57+
public function it_works_for_objects_without_properties()
58+
{
59+
$object = new ClassWithoutProperties();
60+
61+
$hydrate = new HydrateUsingReflection();
62+
63+
// This class doesn't have any property which should be no problem
64+
$hydrate->hydrate([], $object);
65+
}
5266
}

0 commit comments

Comments
 (0)