rtxlabs/data-transformation-bundle

Installs: 7

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 1

Type:symfony-bundle

dev-master 2012-11-18 04:31 UTC

This package is not auto-updated.

Last update: 2024-04-13 12:48:28 UTC


README

Symfony2 Bundle that can help building REST services.

Example

Providing a REST service that returns a list of contacts linked with companies. The service has to deliver something like that:

[{
    "id": 1181,
    "address": null,
    "email": "max.mustermann@dtb.com",
    "firstname": "Max",
    "lastname": "Mustermann",
    "company": 7
} , {
    "id" : 1177,
    "address" : null,
    "email" : "uwe.klawitter@dtb.com",
    "firstname" : "Uwe",
    "lastname" : "Klawitter",
    "company": 298
}]

To generate this, some Doctrine entities have to be loaded from a repository and converted into json. Performing an json_encode() to on the entities won't work, because the entity contains proxy objects to the company. To solve this, the DoctrineBinder can be used:

// loading the entity manager to create the doctrine binder instance
$em = $this->getDoctrine()->getEntityManager();

// create a doctrine binder, bind the models that have been loaded before and execute the binder. The execute
// method will iterate over the models and return an array containing stdClass objects with all values defined
// by getters.
$result = DoctrineBinder::create($em)->bind($models)->execute();

// finally the result has to be converted into json to return it as an response
$json = Dencoder::decode($result);

Documentation