public function testDenormalizationWithType() { $dummy = $this->getDummy(); $this->normalizer->addType('dummy', TypehintNormalizerClassDummy::class); $this->normalizer->addType('subdummy', TypehintNormalizerSubclassDummy::class); $expected = $dummy; $normalized = $this->normalizer->normalize($dummy); $this->assertTrue($this->normalizer->supportsDenormalization($normalized, RecursiveNormalizerClassDummy::class)); $actual = $this->normalizer->denormalize($normalized, TypehintNormalizerClassDummy::class); $this->assertEquals($expected, $actual); }
/** * @param mixed $data * @param string $class * @param mixed $format * @param array $context * @return AbstractTypedAddress */ public function denormalize($data, $class, $format = null, array $context = array()) { /** @var AbstractTypedAddress $result */ $result = $this->addressNormalizer->denormalize($data, $class, $format, $context); if (!empty($data['types']) && is_array($data['types'])) { $types = $this->serializer->denormalize($data['types'], static::TYPES_TYPE, $format, $context); if ($types) { foreach ($types as $type) { $result->addType($type); } } } return $result; }
/** * Returns collection of denormalized data * * @param mixed $data * @param string $class * @param mixed $format * @param array $context * @return ArrayCollection */ public function denormalize($data, $class, $format = null, array $context = array()) { if (!is_array($data)) { return new ArrayCollection(); } $itemType = $this->getItemType($class); if (!$itemType) { return new ArrayCollection($data); } $result = new ArrayCollection(); foreach ($data as $item) { $result->add($this->serializer->denormalize($item, $itemType, $format, $context)); } return $result; }
/** * {@inheritdoc} */ public function denormalize($data, $class, $format = null, array $context = []) { if (isset($data['#type'])) { $type = $data['#type']; unset($data['#type']); $data = $this->denormalize($data, $type, $format, $context); $data = $this->objectNormalizer->denormalize($data, $type, $format, $context); return $data; } if (is_array($data) || $data instanceof \Traversable) { foreach ($data as $key => $value) { $data[$key] = $this->serializer->denormalize($value, $class, $format, $context); } } return $data; }
/** * {@inheritdoc} */ public function handleUpdateRequest(Request $request, $identifier) { $parameters = $request->request->all(); $resource = $this->getResourceById($identifier); $className = ClassUtils::getRealClass(get_class($resource)); $resource = $this->serializer->denormalize($parameters, $className, self::RESPONSE_FORMAT, ['resource' => $resource]); $data = $this->serializer->serialize($resource, self::RESPONSE_FORMAT, ['group' => $this->getResourceType()]); $this->manager->updateResource($resource); return new Response($data); }