服务合同

Magento是一个模块化系统,它使第三方开发人员能够定制和覆盖其框架的核心部分。然而,这种灵活性是有代价的。

业务逻辑倾向于泄漏Magento系统的各个层,这表现为重复且不一致的代码。

商家可能不愿意升级Magento,因为他们购买的自定义扩展程序可能与新版本的Magento不兼容。此外,Magento和第三方开发人员发现很难跟踪和报告自定义扩展在其他扩展上的依赖关系。

为了解决这些问题,Magento系统引入了服务合同。

什么是服务合同?

服务合同 是一组 PHP 中针对定义的接口 模块 。服务合同包括保持数据完整性的数据接口服务接口服务接口隐藏服务请求者(如控制器,Web服务和其他模块)的业务逻辑细节。

如果开发人员根据一组设计模式定义数据和服务接口,那么结果就是一个定义明确,持久的 API ,其他模块和第三方扩展可以通过Magento模型和资源模型实现。

服务合同利益

服务合同增强了Magento的模块化。它们使Magento和第三方开发人员能够通过composer.json文件报告系统依赖性,从而保证Magento版本之间的兼容性。这种兼容性确保商家可以轻松升级Magento。

这些合同确保了其他模块和第三方扩展可以实现的定义明确,持久的API。此外,这些合同使得将服务配置为Web API变得容易。

数据实体是服务合同的附带好处。通常支持这些实体的数据库表可能很复杂。例如,某些属性可能存储在EAV表中,因此一组MySQL数据库表可能定义单个数据 实体 。服务合同中的数据实体显示比底层关系数据库模式中的数据模型更简单的数据模型。最终,您将能够针对不同的数据集合使用不同的存储技术。例如,您可以使用NoSQL数据库替换产品表。

使用@api标签

可以通过使用来指示向后兼容性@api。有关更多信息,请参阅向后兼容性

Magento2 Service contracts 服务合同的更多相关文章

  1. Learning WCF Chapter2 Service Contracts

    A service contract describes the operations supported by a service,the message exchange pattern they ...

  2. [转]oracle EBS 基础100问

    from:http://www.cnblogs.com/xiaoL/p/3593691.html  http://f.dataguru.cn/thread-51057-1-1.html 1001 OR ...

  3. [笔记]学习EBS建议有的知识

    http://f.dataguru.cn/thread-51057-1-1.html ORACLE EBS学习的其他资源有哪四个? ORACLE OPEN WORLD大会是不是一个市场营销活动? Or ...

  4. Service Cloud零基础学习(二)Entitlement & MileStone

    https://trailhead.salesforce.com/content/learn/modules/entitlements 很少会有人不买东西,买的多了也很少没有人没有经历过售后流程.我们 ...

  5. Learning WCF Chapter1 Generating a Service and Client Proxy

    In the previous lab,you created a service and client from scratch without leveraging the tools avail ...

  6. Learning WCF Chapter1 Creating a New Service from Scratch

    You’re about to be introduced to the WCF service. This lab isn’t your typical “Hello World”—it’s “He ...

  7. Learning WCF Chapter2 Data Contracts

    A data contract describes how CLR types map to XSD schema definitions. Data contracts are the prefer ...

  8. Learning WCF Chapter2 WCF Contracts and Serialization

    So far I’ve talked about the standards behind it all,but in fact WCF hides most of this from the dev ...

  9. Learning WCF Chapter2 Service Description

    While messaging protocols are responsible for message serialization formats,there must be a way to c ...

随机推荐

  1. 企业信息化-Excel快速生成系统

    企业信息化,主要是指对企业生产运营过程所形成的信息数字化,最终形成了数字资产.大型企业为了节约成本,提高协同工作效率,都会定制ERP.办公OA.流程审批等系统做信息化支撑.但是中小企业精力投入到生成中 ...

  2. MUI ios下用video标签默认全屏播放

    前几天用Hbuilder+MUI做了个应用,里边用到<video>标签,在Android下正常,但是在苹果手机老是默认全屏播放. 解决办法: 首先在video标签加上playsinline ...

  3. Linux内存描述之内存区域zone--Linux内存管理(三)

    1 内存管理域zone 为了支持NUMA模型,也即CPU对不同内存单元的访问时间可能不同,此时系统的物理内存被划分为几个节点(node), 一个node对应一个内存簇bank,即每个内存簇被认为是一个 ...

  4. adb server version doesn’t match this client

    上传文件到海马玩模拟器 环境变量:ANDROID_SDK_HOME配置是D:\Android\android_sdk_windows 报错:adb server version (31) doesn' ...

  5. Canadian-dollar_RMB

    import pandas as pd import matplotlib.pyplot as plt import statsmodels as sm from statsmodels.graphi ...

  6. jdbc链接数据库

    JDBC简介 JDBC全称为:Java Data Base Connectivity (java数据库连接),可以为多种数据库提供填统一的访问.JDBC是sun开发的一套数据库访问编程接口,是一种SQ ...

  7. Eclipse链接数据库

    在eclipse中找到数据库 选择数据库 然后点击next 填写数据库信息 选择需要执行的SQL语句 ALT+X 或者 右键点击execute selected text: 执行结果: 有问题请在评论 ...

  8. Windows使用MongoDB,以及索引创建

    安装MongoDB https://www.mongodb.com/download-center#community 点击msi安装程序进行安装,可以进行自定义安装,选择安装位置,我选择的是D盘 在 ...

  9. React.js开发的基本配置(配了两天)

    记录下心酸的过程: 1.安装npm 安装node.js,这时候你就可以使用npm了. 因为官方的源下载npm的包比较慢,所以可以用淘宝的源,这时候使用nrm来进行npm源的切换 在cmd中执行 npm ...

  10. 【Python 10】汇率兑换3.0(while循环)

    1.案例描述 设计一个汇率换算程序,其功能是将美元换算成人民币,或者相反. 2.0增加功能:根据输入判断是人民币还是美元,进行相应的转换计算 3.0增加功能:程序可以一直运行,知道用户选择退出 2.案 ...