From adfad32643ee1dbb6d838a96156390323eddb25f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Malling?= Date: Wed, 8 Apr 2026 13:50:00 +0200 Subject: [PATCH 1/2] TASK: Use ReflectionClass for public properties Using ReflectionClass for getting public properties of a class ensures to return none-initialized properties. Using get_object_vars does not return said properties --- Neos.Utility.ObjectHandling/Classes/ObjectAccess.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Neos.Utility.ObjectHandling/Classes/ObjectAccess.php b/Neos.Utility.ObjectHandling/Classes/ObjectAccess.php index 89decda676..30087becb7 100644 --- a/Neos.Utility.ObjectHandling/Classes/ObjectAccess.php +++ b/Neos.Utility.ObjectHandling/Classes/ObjectAccess.php @@ -185,7 +185,9 @@ protected static function initializePropertyGetterCache(string $cacheIdentifier, if ($subject instanceof \ArrayAccess) { return; } - if (array_key_exists($propertyName, get_object_vars($subject))) { + $properties = array_map(fn(\ReflectionProperty $property) => $property->getName(), (new \ReflectionClass($subject))->getProperties(\ReflectionProperty::IS_PUBLIC)); + + if (in_array($propertyName, $properties)) { self::$propertyGetterCache[$cacheIdentifier]['publicProperty'] = $propertyName; } } From f6b9cc10761325550c88ea697085341f812971e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Malling?= Date: Wed, 8 Apr 2026 13:53:28 +0200 Subject: [PATCH 2/2] Add DummyClassWithPublicProperties fixture class --- .../DummyClassWithPublicProperties.php | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Neos.Utility.ObjectHandling/Tests/Unit/Fixture/DummyClassWithPublicProperties.php diff --git a/Neos.Utility.ObjectHandling/Tests/Unit/Fixture/DummyClassWithPublicProperties.php b/Neos.Utility.ObjectHandling/Tests/Unit/Fixture/DummyClassWithPublicProperties.php new file mode 100644 index 0000000000..5a5052ebba --- /dev/null +++ b/Neos.Utility.ObjectHandling/Tests/Unit/Fixture/DummyClassWithPublicProperties.php @@ -0,0 +1,24 @@ +