使用REST API保留实体

Nic*_*tel 6 php api rest orm persistence

对于Symfony2中的项目,我需要能够使用外部RESTful API而不是数据库来持久化/检索实体.由于Doctrine将实体映射到数据库表的一行,我认为创建从实体到外部API的映射应该很容易.但是,这对我来说是新的,我似乎无法找到任何关于此的描述/教程.(也许我错过了我的谷歌的正确的话)

我希望有一个类似于Doctrine的解决方案.我宁愿不使用基于ActiveRecord模式的东西,因为我希望持久性逻辑与实体分开.实体不应该知道它是如何持久化的.

我希望能够做类似的事情:

$entity = new Entity();

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

还有这个:

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

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

还有这个:

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

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

换句话说,如果语法几乎与Doctrine相同,那就太好了.

此外,我想在外部文件(例如YAML)中配置映射,而不是在实体中配置注释.(正如我所说,实体不应该知道它们是如何被保留的)

Forgottenbas已经提到了几个解决方案,但它们并不完全满足我的要求,我希望会有更多的解决方案,因为我确信我不是第一个必须解决这个问题的人.

任何人都能指出我正确的方向吗?

Ale*_* B. 2

大约一年前,我试图找到同一问题的答案,但没有运气并创建自己的捆绑包。不幸的是,我无法分享它,因为它是专有的,并不打算开源(设置量很少,专门为我们的公司 API 等制作了 \xe2\x80\x8b\xe2\x80\x8b )。但我可以给你一些链接

\n\n
    \n
  1. 一开始有一个用于反序列化的jms 序列化器+用于 http 查询的嗡嗡声。您可以用一些服务来包装它并完成工作。

  2. \n
  3. Doctrine 有一些失落的解决方案,称为drest(Doctrine Rest)。

  4. \n
  5. 我还发现了一些有趣的解决方案也称为drest。我不尝试使用它,因为它相对较新。文档看起来相当不错。

  6. \n
\n