/** * {@inheritDoc} */ public function extract($object) { if (!$this->transformerManager->supports($object)) { throw new ExtractorNotSupportedException(sprintf('Can not extract data from object via class "%s" (Transformer).', get_class($object))); } $transformedObject = $this->transformerManager->transform($object); if (!$this->normalizerManager->supports($transformedObject)) { throw new ExtractorNotSupportedException(sprintf('Can not extract data from object via class "%s" (Normalizer).', get_class($transformedObject))); } $normalizedData = $this->normalizerManager->normalize($transformedObject); return $normalizedData; }
/** * Transform object. Try create a object response via object in response. * * @param ActionViewEvent $event */ public function transformObject(ActionViewEvent $event) { $data = $event->getData(); if (is_array($data)) { $data = new \ArrayObject($data); } if ($this->normalizerManager->supports($data) && !$this->transformerManager->supports($data)) { $objectResponse = new ObjectResponse($data); $objectResponse->removeActionTransform(); $response = $this->doTransformObjectResponse($objectResponse); $event->setResponse($response); } if ($this->transformerManager->supports($data)) { $objectResponse = new ObjectResponse($data); $response = $this->doTransformObjectResponse($objectResponse); $event->setResponse($response); } }