У меня есть собственный обработчик, который выполняет десериализацию моего объекта:
public function deserialize( JsonDeserializationVisitor $visitor,
$data,
array $type,
DeserializationContext $context)
Я не хочу брать на себя всю работу по десериализации, я хочу сделать только некоторые из них. Например, у меня есть альбом (идентификатор, имя, описание, фотографии), и я хочу десериализовать «описание» самостоятельно, оставив всю остальную работу пакету.
if (!empty($data['id']))
$album = $albumManager->createWithId($data['id']);
else
$album = $albumManager->create();
$album->setDescription($albumDescriptionParser->parse($data['description']));
// and now I want to delegate other deserialization job to JMSSerializer
// ....
return $album;
Я знаю, что это делается с использованием контекста, посетителя и навигатора, но я не могу понять, как