<?php
namespace LaunchPad\Bundle\LaunchPadBundle\Base\Serializer\Normalizer;
//use BoBoFin\Api\Controller\DonationGroupController;
//use BoBoFin\Base\Entity\DonationGroup;
use LaunchPad\Bundle\LaunchPadBundle\Base\Service\AppNormalizerService;
//use LaunchPad\Bundle\LaunchPadBundle\Bundle\LaunchPadBundle\Base\Service\LaunchPadNormalizerService;
use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
use Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface;
use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
class AppNormalizer extends ObjectNormalizer
{
private $appNormalizerService;
public function __construct(
ClassMetadataFactoryInterface $classMetadataFactory = null, NameConverterInterface $nameConverter = null,
PropertyAccessorInterface $propertyAccessor = null, PropertyTypeExtractorInterface $propertyTypeExtractor = null,
AppNormalizerService $appNormalizerService = null)
{
parent::__construct($classMetadataFactory, $nameConverter, $propertyAccessor, $propertyTypeExtractor);
$this->appNormalizerService = $appNormalizerService;
}
/**
* @param \DateTime $object
* @param null $format
* @param array $context
*
* @return mixeda
* @throws \Symfony\Component\Serializer\Exception\ExceptionInterface
*/
public function normalize($object, $format = null, array $context = array())
{
$result = parent::normalize($object, $format, $context);
if($this->appNormalizerService) {
return $this->appNormalizerService->handleObject($object, $result, $format, $context);
}
return $result;
}
/**
* @param mixed $data
* @param null $format
*
* @return bool
*/
public function supportsNormalization($data, $format = null)
{
return parent::supportsNormalization($data, $format);
}
}