对于 Symfony2 中的项目,我需要能够使用外部 RESTful API 而不是数据库来保存/检索实体。由于 Doctrine 将实体映射到数据库表的一行,因此我认为创建从实体到外部 API 的映射也应该很容易。然而,这对我来说是新的,我似乎找不到任何关于此的描述/教程。 (也许我错过了适合我的 Google-fu 的词)
我希望有一个类似于 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)中配置映射,而不是通过实体中的注释来配置。 (正如我所说,实体不应该知道它们是如何持久化的)
被遗忘者 https://stackoverflow.com/a/20382774/1001110已经提到了几个解决方案,但它们并不能完全满足我的要求,我希望会有更多的解决方案,因为我确信我不是第一个必须解决这个问题的人。
有人能指出我正确的方向吗?
Well Circle 为 Doctrine 构建了完整的 REST 驱动程序,这意味着您可以使用完全相同的语法,因为它是 Doctrine 充当 REST 客户端:
https://github.com/CircleOfNice/DoctrineRestDriver https://github.com/CircleOfNice/DoctrineRestDriver
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)