gpt4 book ai didi

php - 使用 REST API 持久化实体

转载 作者:可可西里 更新时间:2023-11-01 13:19:27 25 4
gpt4 key购买 nike

对于 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)中配置映射,而不是通过实体中的注释。 (正如我所说,实体不应该知道它们是如何持久化的)

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

谁能指出我正确的方向?

最佳答案

Well Circle 为 Doctrine 构建了一个完整的 REST 驱动程序,这意味着您可以使用完全相同的语法,因为它是作为 REST 客户端的 Doctrine:

https://github.com/CircleOfNice/DoctrineRestDriver

关于php - 使用 REST API 持久化实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20380245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com