服务合同

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. 学习Python3基础知识过程中总结

    print()中end==""的用法 例子:用Python3输出九九乘法表: for i in range(1,10): for j in range(1,i+1): s=i*j ...

  2. python 图片在线转字符画预览

    文章链接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 关于python图片转字符画,相信大家都不陌生,经常出现在 n个超有趣的python项目中 ...

  3. C语言检测指定文件是否存在的代码

    内容之余,将做工程过程中比较常用的一些内容片段珍藏起来,下面资料是关于C语言检测指定文件是否存在的内容,希望能对小伙伴们有所用. #include <stdbool.h> #include ...

  4. C#监控指定目录的文件变化的代码

    如下的资料是关于C#监控指定目录的文件变化的代码. FileSystemWatcher watcher = new FileSystemWatcher();watcher.Path = @" ...

  5. php怎么做网站?如何用PHP开发一个完整的网站?

    1.PHPer应具备的知识 (1)PHP知识: 熟练掌握基础函数,PHP语句(条件.循环),数组(排序.读取),函数(内部 构造),运算(数学 逻辑),面向对象(继承 接口 封装 多态静态属性)等. ...

  6. 模拟ES6中的Promise实现,让原理一目了然

    简介 Promise 对象用于延迟(deferred) 计算和异步(asynchronous )计算.一个Promise对象代表着一个还未完成,但预期将来会完成的操作.Promise 对象是一个返回值 ...

  7. ORACLE中如何查找定位表最后DML操作的时间小结

    在Oracle数据库中,如何查找,定位一张表最后一次的DML操作的时间呢? 方式有三种,不过都有一些局限性,下面简单的解析.总结一下. 1:使用ORA_ROWSCN伪列获取表最后的DML时间 ORA_ ...

  8. selenium-启动浏览器(二)

    selenium下启动浏览器,有两种方法 以 chromedrvier.exe 为例 1. chromedrvier.exe 与 python 启动程序 python.exe 在同一个目录下则可直接使 ...

  9. SQL Server查看视图定义总结

      在SQL Server中如何查看数据库视图的定义呢? 其实官方文档已经有一个较详细的总结了,这里在官方文档的基础上,我们再深入展开分析一下,例如如何获取系统视图的定义.知其然知其所以然吗. 1:使 ...

  10. Html 解决数字和字母不换行

    在html页面中,如果是数字或者字母显示的话,默认是不换行的.一般显示成这种: 解决方法确实也很简单,设置td或者div为: style="word-break:break-all;&quo ...