本文主要是介绍二、OData for php与SugarCRM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上周与导师一直没有联系上,这周联系上进行了进一步研究
一、什么是OData?
OData,即Open Data Protocol (开放数据协议,OData)是用来查询和更新数据的一种Web协议,其提供了把存在于应用程序中的数据暴露出来的方式。OData Service 基于OData Service Provider之上,将数据源暴露出来,使得我们可以通过应用程序访问,或者通过浏览器直接访问。
这里我们就将在SugarCRM中整合OData的php插件
二、Odata生态系统
- Producer:Producer是使用OData协议暴露数据的数据服务,producer,顾名思义,生产者的意思,这里通俗讲就是为我们的应用添加OData支持,产生基于OData协议的数据服务。
- Consumer:Consumer即用来消费用OData协议暴露出来的数据的应用。
三、OData与php
OData的官网提供了OData SDK for PHP和OData Producer Library for PHP,其中OData SDK for PHP用来使PHP应用可以消费由采用OData协议的ADO.NET/WCF Data Service 暴露出来的数据。而OData Producer Library for PHP则是可以使PHP应用产生OData数据源,所以我们的提案就要使用OData Producer Library for PHP。
四、OData Producer Library for PHP。
(一)OData Producer Library for PHP主要分为以下几部分:
1. Dispatcher
Dispatcher用来解析服务和处理请求
2. Data Service
DataService 类是所有特定服务的基础,其采用了两个接口IRequestHandler和IDataServcie.
3. OperationContext
The Operation Context 类提供了HTTP请求和响应的通道
4. Object Model Serializer
a . ATOM
b. JSON
c. Metadata
Object Model Serializer是负责构建域对象模型,用来存储任何查询的结果
5. Query Processor
a. URI Parser
b. Query Executor
The Query Processor用来解析和验证URl,并执行查询
6. Response Writer
Response Writer用来设置header中的输出响应.
(二)OData Producer Library for PHP的目录结构:
(三)Provider Interface
1.IDataServiceMetadataProvider:通过此接口获取元数据的类型,属性,主键等
2.IDataServiceQueryProvider:调用此接口 响应HTTP GET 请求,这里我们封装了对SQL数据操纵语句
3.IDataServiceQueryProvider2:与IDataServiceQueryProvider功能基本相同,唯一不同的是IDataServiceQueryProvider2直接在sql语句中进行结果过滤
,而IDataServiceQueryProvider则在接口中实现
4.IDataServiceStreamProvider:调用此接口可对流数据进行操纵
(四)确定整体思路:
首先确定SugarCRM中的实体集,并分析它们之间的联系,在IDataServiceMetadataProvider中实现描述实体和联系的方法,然后在IDataServiceQueryProvider中实现对数据的操纵,之后定义Data Service, 修改Service.Config.xml 文件,完成New data Service注册,修改Apache配置,实现浏览器访问。
这篇关于二、OData for php与SugarCRM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!