Я хотел бы знать, есть ли способ десериализации массива, содержащего объекты разных типов. Я построил что-то, где я могу сериализовать и десериализовать массив объектов определенного типа, например:
$nodes = [
new PostNode(),
new PostNode(),
new PostNode()
];
$serializer = new Serializer( [
new ObjectNormalizer(),
new ArrayDenormalizer(),
], [ new JsonEncoder() ] );
$data = $serializer->serialize($nodes, 'json');
$deSerializedNodes = $serializer->deserialize( $data, PostNode::class . '[]', 'json' );
Я получаю именно тот массив, который вставил обратно, и это хорошо. Теперь я хочу знать, могу ли я сериализовать и десериализовать массив следующим образом:
$nodes = [
new PostNode(),
new PostNode(),
new PostNode(),
new FormNode(),
new FormNode()
];
Задача ещё не решена.
Других решений пока нет …