Symfony — как использовать Normalizer

Автор: Aport Суббота, Январь 31st, 2015 Нет комментариев

Рубрика: Язык PHP

Чтобы сериализовать или десериализовать объект в JSON или XML, в симфони (начиная с версии 2.3) уже встроен JMSSerializerBundle, однако, изначально включен только Serializer, но не включен Normalizer. Таким образом из JSON или XML создать объект можно, а превратить объект в JSON или XML нельзя, так давайте разберемся как включить эту возможность.

Для включения нормализации, всего лишь нужно в файл app/config/config.yml добавить:

services:
   get_set_method_normalizer:
      class: Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer
      tags:
         - { name: serializer.normalizer }

все, теперь можете делать так:

<?php
namespace Intranet\OrgunitBundle\Controller;
use Intranet\OrgunitBundle\Entity\Orgunit;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DefaultController extends Controller
{
    /**
     * Поиск сущности (по указанным полям)
     */
    public function searchAction()
    {
        $array = $this->get(‘request’)->query->all();
        $entity = $this->getDoctrine()
            ->getRepository(‘IntranetOrgunitBundle:Orgunit’)
            ->findOneBy($array);
        /** @var \DateTime $DateTime */
        $DateTime = $entity->getDateStart();
        $entity->setDateStart( $DateTime->format(‘d.m.Y’) );
        $serializer = $this->get(‘serializer’);
        $array = $serializer->normalize($entity);
        //$json = $serializer->serialize($entity, ‘json’);
        return new JsonResponse( $array );
    }
}

Удачи, господа.

 

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты