服务合同

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. TabLayout您可能不知道的实用用法

    一.修改点击的动画 函数:setUnboundedRipple 这是默认的点击的动画 我们用代码修改一下: mGlueTabLayout.setUnboundedRipple(true); 这是之后的 ...

  2. MySQL常用字符串函数

    字符串函数 是最常用的的一种函数,在一个具体应用中通常会综合几个甚至几类函数来实现相应的应用: 1.LOWER(column|str):将字符串参数值转换为全小写字母后返回 mysql> sel ...

  3. c/c++ 继承与多态 静态调用与动态调用

    静态调用,与动态调用. 动态调用条件:必须用父类的引用或者指针,并且调用的必须是虚方法. #include <iostream> class Base{ public: virtual i ...

  4. Ubuntu系统分配存储空间的建议以及给Ubuntu系统根目录扩容方法(从20GB追加100GB)

    当初准备装双系统时,也思考了很久分配多少空间给Ubuntu16.04系统,查了许多资料,大多意思是‘/’目录总共给20GB,其他的给/home.网上资料推荐的大多跟这篇文章一样:https://blo ...

  5. Chinese word segment based on character representation learning 论文笔记

    论文名和编号 摘要/引言 相关背景和工作 论文方法/模型 实验(数据集)及 分析(一些具体数据) 未来工作/不足 是否有源码 问题 原因 解决思路 优势 基于表示学习的中文分词 编号:1001-908 ...

  6. MongoDB的常用命令和增查改删

    数据库操作 Mongodb MySQL 查询库 show databases | show dbs show databases 选中库 use databaseName use databaseNa ...

  7. requests模块

    import requests url='https://www.cnblogs.com/Eva-J/p/7277026.html' get = requests.get(url) print(get ...

  8. Myeclipse、eclipse安装lombok

    Lombok简介 Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法.官方地址:https:/ ...

  9. springboot项目

    https://my.oschina.net/ityouknow/blog/1629066

  10. bsp 总结正规流程

    1. do boot 之类下载boot的都是将 uboot.bin里的内容下载到flash 0x0位置 => nand dump 0x0Page 00000000 dump: 14 00 00 ...