/SerializedResponseBundle

A simple bundle to provide an easy way to send out json/xml/yaml responses of serialized objects with annotations.

Primary LanguagePHPMIT LicenseMIT

SerializedResponseBundle

A simple bundle to provide an easy way to send out json/xml/yaml responses of serialized objects with annotations.

##Introduction This Bundle allows you to directly return serializable objects as from within a controller to receive a serialized response in json/xml/yaml format. It requires jms/serializer-bundle.

##Installation ###Step 1 This library can be easily installed via composer

composer pulpmedia/serialized-response-bundle

or just add it to your composer.json file directly. This will install the pulpmedia/serialized-response-bundle and jms/serializer if not already installed.

###Step 2 Enable the bundle in the kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        new JMS\SerializerBundle\JMSSerializerBundle(), //If you have not already done this already
        // ...
        new Pulpmedia\SerializedResponseBundle\PulpmediaSerializedResponseBundle(),
    );
}

##Usage Using the Bundle is as easy as it comes. By returning the Object that should be serialized and using the corresponding annotation;

<?php
namespace My\Bundle\Controller

use Pulpmedia\SerializedResponseBundle\Annotation\SerializedResponse;

// ...

class MyController extents Controller{

  /**
   * @Route("/get/{id}")
   * @SerializedResponse(format="json/xml/yaml")
   */
  public function getAction($id){
    $em = $this->getDoctrine()->getManager();

    if($object = $em->getRepository('MyBundle:Entity')->find($id)){
        return $object;
    }
    return null;
  }
}