服务合同

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. Dynamics 365 Customer Engagement安装FAQ

    微软动态CRM专家罗勇 ,回复310或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 本文参考了包括但不限 ...

  2. Vysor破解助手for Linux and macOS

    <Vysor Pro破解助手>提供了Windows下的Vysor破解工具,为了使用Linux及macOS同学的方便,最近整理了Linux及macOS版的Vysor破解助手. Linux版V ...

  3. [伟哥开源项目基金会](https://github.com/AspNetCoreFoundation)

    伟哥开源项目基金会 GitHub_base=> 伟哥开源项目基金会 该项目作者为伟哥,GitHub地址:https://github.com/amh1979: 该项目维护者为鸟窝,GitHub地 ...

  4. python--多继承

    多继承 子类可以拥有多个父类,继承所有父类的属性和方法 class 子类名(父类名1,父类名2): 多个父类直接不要有重名的方法和属性,子类对象调用,没法确认.

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

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

  6. 在android中进行单元测试的步骤

    若不知道怎么配上面两个参数 

  7. Maven pom.xml中的元素modules、parent、properties以及import

    前言 项目中用到了maven,而且用到的内容不像利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)用的那么简单:maven的核心是pom.xml,那么我就它 ...

  8. 最小化spring XML配置,Spring提供了4种自动装配策略。

    1.ByName自动装配:匹配属性的名字 在配置文件中的写法: <bean name="course" class="course类的全包名">&l ...

  9. 移动端1px的解决办法之styled

    做项目的时候总结了一个styled中解决移动端项目1px像素线的问题,封装了一个函数,大家可以直接使用,很方便. 1 import styled from 'styled-components' co ...

  10. log4cplus 简单记录

    请注意区别对待: 1.2.1  :  不支持 C++11,比如 std::move 就会 fail. 2.0.1  :  支持 C++11,比如 std::move 就 ok. 完.