Posts Tagged with jmsserializer

JMSSerializer. Пишем свой обработчик

Написана 22 Августа, 2013 в 16:44. Автор: borN_free   |   Теги: symfony, jmsserializer, handler Комментарии 4

  • Задача: написать API, отдающее продукты с вложенными картинками (URLs на них) в виде JSON
  • Используется: Symfony2, FOSRestBundle + NelmioApiDocBundle
  • Сериализация через JMSSerializer. В ответе сериализуются сущности (Doctrine Entity).

Необходимость в написании своего обработчика появилась из-за использования Sonata Media Bundle, а именно:

при сериализации сущности, вложенная в продукт сущность картинки (Sonata\Media) сериализуется без URL. Кто сталкивался с этим бандлом, тому известно, что сущность не имеет метода получения URL, а необходимо использовать MediaManager.

Код примерно такой:

$mediaService = $this->container->get('sonata.media.pool');
$provider = $mediaService->getProvider($media->getProviderName());
$format = $provider->getFormatName($media, 'small');
$url = $provider->generatePublicUrl($media, $format);

Читать полностью →