Entidades persistentes usando uma API REST

Para um projeto no Symfony2, preciso ser capaz de persistir / recuperar entidades usando uma API RESTful externa, em vez do banco de dados. Como o Doctrine mapeia a entidade para uma linha de uma tabela de banco de dados, achei que seria fácil criar um mapeamento da entidade para uma API externa também. No entanto, isso é novo para mim e não consigo encontrar descrições / tutoriais sobre isso. (talvez eu esteja perdendo as palavras certas para o meu Google-fu)

Eu esperava que houvesse uma solução semelhante à Doutrina. Eu prefiro não usar algo com base no padrão ActiveRecord, porque eu quero que a lógica de persistência seja separada das Entidades. A entidade não deve saber como ela é persistida.

Eu quero ser capaz de fazer algo semelhante a isso:

$entity = new Entity();

$em = $this->getREST()->getManager(); // get REST Entity Manager
$em->persist($entity); // save the entity using a POST request
$em->flush();

e isto:

$em = $this->getREST()->getManager(); // get REST Entity Manager

// retrieve the entity using a GET request
$entity = $em->getRepository('AcmeDemoBundle:Entity')->find($id);

e isto:

$em = $this->getREST()->getManager(); // get REST Entity Manager

// retrieve all entities using a GET request
$entities = $em->getRepository('AcmeDemoBundle:Entity')->findAll();

Em outras palavras, seria bom se a sintaxe pudesse ser quase idêntica à da Doutrina.

Além disso, gostaria de configurar o mapeamento em um arquivo externo (YAML por exemplo) em vez de anotações na entidade. (Como eu disse, as entidades não devem saber como elas são persistidas)

Forgottenbas já mencionei algumas soluções, mas elas não satisfazem completamente meus requisitos, e eu esperaria que houvesse mais soluções, já que tenho certeza de que não sou o primeiro a lidar com esse problema.

Alguém pode me apontar na direção certa?

questionAnswers(4)

yourAnswerToTheQuestion