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 (!is_a($type, 'JMS\SerializerBundle\Serializer\Handler\DeserializationHandlerInterface')) { return; } $metadata = $this->metadataFactory->getMetadataForClass($type); $instance = $this->objectConstructor->construct($visitor, $metadata, $data, $type); $instance->deserialize($visitor, $data, $type, $handled); return $instance; } }