Skip to content

Commit 8be4215

Browse files
alaugksnicolas-grekas
authored andcommitted
[Serializer] Fix ObjectNormalizer gives warnings on normalizing with public static property
1 parent a757250 commit 8be4215

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

Normalizer/ObjectNormalizer.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ protected function isAllowedAttribute($classOrObject, string $attribute, ?string
197197

198198
if ($context['_read_attributes'] ?? true) {
199199
if (!isset(self::$isReadableCache[$class.$attribute])) {
200-
self::$isReadableCache[$class.$attribute] = (\is_object($classOrObject) && $this->propertyAccessor->isReadable($classOrObject, $attribute)) || $this->propertyInfoExtractor->isReadable($class, $attribute) || $this->hasAttributeAccessorMethod($class, $attribute);
200+
self::$isReadableCache[$class.$attribute] = $this->propertyInfoExtractor->isReadable($class, $attribute) || $this->hasAttributeAccessorMethod($class, $attribute) || (\is_object($classOrObject) && $this->propertyAccessor->isReadable($classOrObject, $attribute));
201201
}
202202

203203
return self::$isReadableCache[$class.$attribute];

Tests/Normalizer/ObjectNormalizerTest.php

+10
Original file line numberDiff line numberDiff line change
@@ -927,6 +927,16 @@ public function testDenormalizeWithPropertyPath()
927927

928928
$this->assertEquals($expected, $obj);
929929
}
930+
931+
public function testObjectNormalizerWithAttributeLoaderAndObjectHasStaticProperty()
932+
{
933+
$class = new class {
934+
public static string $foo;
935+
};
936+
937+
$normalizer = new ObjectNormalizer(new ClassMetadataFactory(new AttributeLoader()));
938+
$this->assertSame([], $normalizer->normalize($class));
939+
}
930940
}
931941

932942
class ProxyObjectDummy extends ObjectDummy

0 commit comments

Comments
 (0)