有哪些PHP框架实现了ODATA协议?

9

有没有实现OData协议的PHP框架,可以是原生的或通过扩展实现?

我需要在客户端使用breezejs,希望不必自己实现所有OData的服务器端工作。

如果没有这样的东西,是否有breezejs的替代品?

jaydata不是替代品,因为它实际上也需要服务器端实现OData协议,所以它们太相似了。

Rest服务(如angularjs中的restangular)也不是替代品(至少对我来说不是)。它们只提供了breezejs或jaydata的一部分服务。例如,它们不提供缓存数据、更改跟踪或复杂的丰富查询选项。

有什么想法吗?

谢谢


这里有一个针对 Laravel 的:https://github.com/Algo-Web/POData-Laravel - MJBZA
1
还有适用于纯PHP的:https://github.com/saintsystems/odata-client-php 和 https://github.com/POData/POData - MJBZA
1个回答

4

是的 - 有一个OData Producer Library for PHP,可以在github上获取。

这可能既多于你所需,也可能少于你所需。 Breeze客户端基本上需要从服务器获取三件事:

  1. 描述对象模型的元数据(可能是手动编写的)。 OData的元数据可能不足,因为它有时会省略外键。
  2. 处理保存更改的方法(我认为PHP的OData生产者没有实现此功能)。
  3. 响应应用程序所需的查询的方法。

您不一定需要完整的OData实现。请查看breeze.server.php;这可能是您所需的。

编辑 - breeze.server.php 实际上使用了OData Producer Library


3
OData Producer Library for PHP 目前仅支持读取请求。我们尝试了添加写入部分但未成功。现在,我们使用 nodejs + jaydataserver 作为服务器部分。 - Eric Winter
1
是的,实现OData写入是很痛苦的;即使Microsoft也难以实现规范。Breeze在不需要时不使用OData写入;它默认使用JSON保存包。 - Steve Schmitt
1
顺便提一下,Breeze即将支持Nodejs上的Sequelize ORM,以及非OData JSON查询协议。 - Steve Schmitt
2
从Data Producer Library的Github存储库中:OData Producer支持协议版本2.0中指定的所有只读操作。因此,如果您想要使用Odata v4和/或需要写访问权限,那么你会非常困难。 - John Slegers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接