8000 Fix denormalization of object with variadic constructor typed argument · symfony/symfony@995d189 · GitHub
[go: up one dir, main page]

Skip to content

Commit 995d189

Browse files
committed
Fix denormalization of object with variadic constructor typed argument
1 parent 8ae39cb commit 995d189

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,14 @@ protected function instantiateObject(array &$data, $class, array &$context, \Ref
354354
throw new RuntimeException(sprintf('Cannot create an instance of %s from serialized data because the variadic parameter %s can only accept an array.', $class, $constructorParameter->name));
355355
}
356356

357-
$params = array_merge($params, $data[$paramName]);
357+
$variadicParameters = array_map(
358+
function ($parameterData) use ($reflectionClass, $constructorParameter, $paramName, $context, $format) {
359+
return $this->denormalizeParameter($reflectionClass, $constructorParameter, $paramName, $parameterData, $context, $format);
360+
},
361+
$data[$paramName]
362+
);
363+
364+
$params = array_merge($params, $variadicParameters);
358365
}
359366
} elseif ($allowed && !$ignored && (isset($data[$key]) || \array_key_exists($key, $data))) {
360367
$parameterData = $data[$key];

0 commit comments

Comments
 (0)
0