public function visitObject(ClassMetadata $metadata, $data, Type $type, Context $context, ObjectConstructorInterface $objectConstructor = null) { $object = $objectConstructor->construct($this, $metadata, $data, $type, $context); /** @var PropertyMetadata $propertyMetadata */ foreach ($context->getNonSkippedProperties($metadata) as $propertyMetadata) { $context->getMetadataStack()->push($propertyMetadata); $v = $this->visitProperty($propertyMetadata, $data, $context); $context->getMetadataStack()->pop(); $propertyMetadata->setValue($object, $v); } $this->setData($object); return $object; }
/** * {@inheritdoc} */ public function construct(VisitorInterface $visitor, ClassMetadata $metadata, $data, Type $type, DeserializationContext $context) { $object = $this->loadFromObjectManager($metadata, $data); return $object ?: $this->fallbackConstructor->construct($visitor, $metadata, $data, $type, $context); }