对于Symfony2项目,我需要能够使用外部RESTful API持久化/检索实体,而不是数据库。由于Doctrine将实体映射到数据库表的行,因此我认为应该很容易创建从实体到外部API的映射。然而,这对我来说是新的,我似乎找不到任何关于此的描述/教程(也许我没有用正确的词进行谷歌搜索)。
我希望有一个类似Doctrine的解决方案。我不想使用基于ActiveRecord模式的东西,因为我希望将持久性逻辑与实体分开。实体不应该知道它是如何被持久化的。
我希望能够做类似于这样的事情:
换句话说,如果语法与Doctrine几乎相同将是很好的。
此外,我想在外部文件(例如YAML)中配置映射,而不是通过实体中的注释进行配置。 (正如我所说,实体不应该知道它们是如何持久化的) Forgottenbas 已经提出了一些解决方案,但它们并不能完全满足我的要求,我希望还有更多的解决方案,因为我相信我不是第一个遇到这个问题的人。
有人能指点我正确的方向吗?
我希望有一个类似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();
和这个:
$em = $this->getREST()->getManager(); // get REST Entity Manager
// retrieve the entity using a GET request
$entity = $em->getRepository('AcmeDemoBundle:Entity')->find($id);
和这个:
$em = $this->getREST()->getManager(); // get REST Entity Manager
// retrieve all entities using a GET request
$entities = $em->getRepository('AcmeDemoBundle:Entity')->findAll();
换句话说,如果语法与Doctrine几乎相同将是很好的。
此外,我想在外部文件(例如YAML)中配置映射,而不是通过实体中的注释进行配置。 (正如我所说,实体不应该知道它们是如何持久化的) Forgottenbas 已经提出了一些解决方案,但它们并不能完全满足我的要求,我希望还有更多的解决方案,因为我相信我不是第一个遇到这个问题的人。
有人能指点我正确的方向吗?
find()
,findAll()
等方法。我正在尽量保持它的通用性和可重复使用性。但如果我遗漏了什么,请一定要让我知道!(最好在Doctrine特定问题的) - Nic Wortel