Есть похожий вопрос, но ясности он пока не внес
Как реализовать десериализацию иерархии вложенных объектов с помощью Symfony Serializer?
Мой вопрос.
Есть вот такая крутая штука
https://symfony.com/doc/current/components/seriali...
Я использую ее для превращения JSON в валидный экземпляр класса.
Все бы хорошо, но я уткнулся в проблему, когда мне надо присвоить в свойство класса массив с объектами.
Пример
class ContragentDto
{
/**
* @var Phone[]
*/
private $phones = [];
/**
* @return Phone[]
*/
public function getPhones(): array
{
return $this->phones;
}
/**
* @param Phone[] $phones
*/
public function setPhones(array $phones): void
{
$this->phones = $phones;
}
}
$normalizer = new ObjectNormalizer(null, null, null, new ReflectionExtractor());
$serializer = new Serializer([$normalizer]);
return $serializer->denormalize($array, ContragentDto::class);
Пример JSON
{
"uuid": "00004539-73d6-4211-8a32-913bd34f3c8b",
"phones": [
{
"id": 6082892,
"type": "mob",
"number": "+79818"
},
{
"id": 60828927,
"type": "mob",
"number": "+7988"
}
],
}';
Все хорошо, за исключением того, что в phones прилетает не массив с экземплярами класса, а массив с json объектами.
Как сделать чтобы массив тоже валидно десериализовался?