objectConstructor = $objectConstructor; $this->metadataFactory = $metadataFactory; } public function serialize(VisitorInterface $visitor, $data, $type, &$handled) { if (!$data instanceof SerializationHandlerInterface) { return; } return $data->serialize($visitor, $data, $type, $handled); } public function deserialize(VisitorInterface $visitor, $data, $type, &$handled) { if (!class_exists($type) || !in_array('JMS\SerializerBundle\Serializer\Handler\DeserializationHandlerInterface', class_implements($type))) { return; } $metadata = $this->metadataFactory->getMetadataForClass($type); $visitor->startVisitingObject($metadata, $data, $type); $instance = $visitor->getResult(); $instance->deserialize($visitor, $data, $type, $handled); return $instance; } }