是否有一个带有/ORM(Laravel、Cake、Codeigniter)的 PHP 框架,我们可以在其中覆盖数据交互以从 rest api 中获取数据?

Posted

技术标签:

【中文标题】是否有一个带有/ORM(Laravel、Cake、Codeigniter)的 PHP 框架,我们可以在其中覆盖数据交互以从 rest api 中获取数据?【英文标题】:Is there a PHP framework w/ ORM (Laravel, Cake, Code Igniter) where we can override the data interaction to get the data from and to a rest api? 【发布时间】:2013-12-14 20:10:20 【问题描述】:

我的意思是我已经有一个 RESTful api 来获取我的数据,但我希望能够使用类似 ORM 的函数来与数据交互。

$myobj = new Object();
$myobj->name = "This is my object name";
$myobj->save();

如上图所示,对象上使用了save函数,将对象直接保存到数据库中。但我想将对象保存在一个 restful api 上,所以抽象级别或我需要创建和分离的部分将是覆盖 ORM 以与 API 而不是与数据库交互。

我知道这是一个奇怪的问题,而且我很确定其他人在我之前就已经想这样做了(我不能一个人!啊哈)但我没有在网上找到任何东西......

【问题讨论】:

我讨厌人们在不说原因的情况下投反对票!懦夫!如果您投反对票,请向 OP 说明理由,以便他们修复问题。如果您不解释自己,您的意见也不会更好。支持或关闭选民! 谢谢...我知道,这很令人沮丧,因为我只是想学习新事物,没有人会比其他人感觉更好,因为他们认为我的问题很基本。也许我的问题对某些人来说是基本的,但我只是想弄清楚。 没错!这就是这个网站的用途。但是让一些小丑只是过来投票而没有解释是令人恼火的。它可能只是一些只有特定意图的巨魔才能消极。对不起,咆哮。 【参考方案1】:

如果我理解正确,如果您询问 Cakephp 框架,我想您可能正在寻找数据源:http://book.cakephp.org/2.0/en/models/datasources.html

将数据源连接到 RESTful API 后,您就可以使用 ORM 语法从 CakePHP 应用程序中调用数据。

这对于访问来自其他来源的数据非常有用,例如 twitter。

【讨论】:

太棒了!因此,您基本上使用扩展 DataSource 的类创建自己的抽象级别,然后您可以使用您的 CRUD。您是否仍然需要定义您的 CRUD 函数,或者 DataSource 是否有默认的函数来处理 restful 交互? 您可以定义数据源如何实现 CRUD。但是随后您加载“模型”并以与访问数据库相同的方式调用 CRUD 方法。抽象是美丽的! 这只是意味着我可以从一个数据库开始,并在某个时候轻松地移植到一个 api,反之亦然,除了数据源文件本身之外,不会破坏任何东西......太棒了!感谢您的帮助!

以上是关于是否有一个带有/ORM(Laravel、Cake、Codeigniter)的 PHP 框架,我们可以在其中覆盖数据交互以从 rest api 中获取数据?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Eloquent ORM 事务

如何在 Cake 3.0 中保存 belongsToMany 数据?

是否有带有数据库逆向工程的 Perl ORM?

是否可以在 laravel ORM 的增量中添加 tinyInteger 或 smallInteger?

是否可以根据 Laravel 的 ORM 中的多个列删除重复项?

Laravel Eloquent ORM:设置模型的数据类型