From 6a76f9bd0aa441ceb55b8353160fa778db91ccb8 Mon Sep 17 00:00:00 2001 From: Ema Panz Date: Wed, 13 Nov 2019 16:59:10 +0100 Subject: [PATCH] Add PHP typehints to DefaultAccessor closures --- src/Accessor/DefaultAccessorStrategy.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Accessor/DefaultAccessorStrategy.php b/src/Accessor/DefaultAccessorStrategy.php index 874f9c511..cf27ce244 100644 --- a/src/Accessor/DefaultAccessorStrategy.php +++ b/src/Accessor/DefaultAccessorStrategy.php @@ -71,7 +71,7 @@ public function getValue(object $object, PropertyMetadata $metadata, Serializati if (null === $metadata->getter) { if (!isset($this->readAccessors[$metadata->class])) { if (true === $metadata->forceReflectionAccess) { - $this->readAccessors[$metadata->class] = function ($o, $name) use ($metadata) { + $this->readAccessors[$metadata->class] = function (object $o, string $name) use ($metadata) { $ref = $this->propertyReflectionCache[$metadata->class][$name] ?? null; if (null === $ref) { $ref = new \ReflectionProperty($metadata->class, $name); @@ -82,8 +82,8 @@ public function getValue(object $object, PropertyMetadata $metadata, Serializati return $ref->getValue($o); }; } else { - $this->readAccessors[$metadata->class] = \Closure::bind(static function ($o, $name) { - return $o->$name; + $this->readAccessors[$metadata->class] = \Closure::bind(static function (object $o, string $name) { + return $o->$name ?? null; }, null, $metadata->class); } } @@ -106,7 +106,7 @@ public function setValue(object $object, $value, PropertyMetadata $metadata, Des if (null === $metadata->setter) { if (!isset($this->writeAccessors[$metadata->class])) { if (true === $metadata->forceReflectionAccess) { - $this->writeAccessors[$metadata->class] = function ($o, $name, $value) use ($metadata): void { + $this->writeAccessors[$metadata->class] = function (object $o, string $name, $value) use ($metadata): void { $ref = $this->propertyReflectionCache[$metadata->class][$name] ?? null; if (null === $ref) { $ref = new \ReflectionProperty($metadata->class, $name); @@ -117,7 +117,7 @@ public function setValue(object $object, $value, PropertyMetadata $metadata, Des $ref->setValue($o, $value); }; } else { - $this->writeAccessors[$metadata->class] = \Closure::bind(static function ($o, $name, $value): void { + $this->writeAccessors[$metadata->class] = \Closure::bind(static function (object $o, string $name, $value): void { $o->$name = $value; }, null, $metadata->class); }