Magento 2 是模型视图,视图模型系统而不是 MVC – 解释

已发表: 2017-10-04

Magento 2 的发布彻底改变了开发人员为网站规划和编写代码的方式。 Magento 正在为全球成千上万的商家提供一个完美的电子商务平台,以便轻松地将他们的产品展示给更广泛的受众。 Magento 2 与商家长期以来使用的卓越架构保持一致。

例如,可以在线购买眼镜的领先电子商务平台 GlassesUSA.com 正在使用 Magento。 GlassesUSA 的团队表示,Magento 已使其网站易于扩展,以适应每天都在发展的各种业务需求。 随着不断变化的市场动态和不断扩大的客户群,采用 Magento 已成为最重要的决定之一。 这产生了积极的影响,并将他们的网站维护停机时间减少到几乎为零。 他们只需要添加或修改一个模块以反映其网站所需的更改,而不会妨碍业务连续性或用户体验

Magento 的架构设计是由开发人员创建的,它提供了一种可以根据业务特定需求轻松定制的源代码。 正是架构之美允许开发人员和商家添加模块并扩展 Magento 电子商务主题的功能。

大多数平台都需要修改核心代码来个性化最终产品,但 Magento 远远超出了常见问题。 通过安装 Magento 插件可以更轻松地添加选项或功能。 例如,如果您需要将结构化片段添加到产品页面,只需安装 Magento 丰富片段扩展或类似应用程序即可完成工作。 无需更改代码并将其他产品信息分别注入每个着陆页。

架构设计有利于电子商务网站的卖家和管理员轻松定制、更新和添加新功能。 在评论 Magento 的产品之前,让我们先讨论一些架构模型。

相关文章:如何在 Magento 2 中编辑和删除订单

MVC(模型视图控制器)模型

MVC是一个设计应用,通过模型来拆分数据的访问,通过视图来区分前端,通过控制器来区分业务逻辑。 这种设计模式是在 1970 年代引入的,用于将用户界面与模型分离。 在 MVC 合并的结果中,修复、维护和测试应用程序变得更加容易。 设计模式的核心主题是将应用程序划分为三个架构方面,包括模型、视图和控制器。

该模型通过一组类来象征应用程序的业务逻辑。 它可以是数据模型或业务模型。 模型还显示了修改、更改或操作数据的方式。

视图是用户界面或应用程序的前端。 这包括 jQuery、CSS、HTML 等 UI 组件。它将从应用程序控制器获取的数据显示为结果信息。 View 使用用户界面复制模型。

控制器负责处理应用程序从前端获得的请求。 它通过 View 从最终用户那里获取信息,通过 Model 处理数据,然后将其超越返回到前端(视图)。 它就像模型和视图之间的桥梁。

建议的帖子:如何向市场提交 Magento 2 扩展?

模型视图 ViewModel (MVVM) 系统

MVVM 是一种用于编程和软件开发的架构模式。 该系统工作在 View 和 ViewModel 之间的双向数据绑定机制上。 这简化了 ViewModel 中的自动更改以将其显示在 View 中。

MVVM 具有模型和视图,就像它们在 MVC 中的存在方式一样,但是控制器被 ViewModel 替换。

Magento 2 是 MVVM 系统还是 MVC?

Magento 2 是一个模型视图 ViewModel 系统,不再是由 MVC 结构化的设计。 MVC 模型是在之前的版本中加入的,看起来和 MVVM 很相似,但是 MVVM 是一种在应用程序中划分 View 和 Model 的方式更加丰富。

MVVM 具有三层,包括模型、视图和视图模型。 扩展或应用程序的业务逻辑由模型表示,而前端由视图表示。 就像控制器在 MVC 模型中充当中介的方式一样,ViewModel 弥合了 MVVM 系统中的模型和视图之间的差距。

据说为 Magento 2 开发的扩展包含上面讨论的基本设计元素。 然而,控制器的角色并没有从 Magento 2 中完全删除,因为它负责管理用户流程,包括就用户的请求向系统传达信息。

让我用一个例子来解释一下。 作为示例,您可以尝试设置一个新 URL 并为其创建一个 phtml 模板。 当您在 Magento 2 中请求新的 URL 时,例如 http://magento.abc.com/hi/friend,MVVM 系统会将请求发送到控制器以处理它,就像在 MVC 中完成的方式一样。 但是,MVVM 中控制器的职责有很大的不同。 它负责

  • 确定要选择的页面布局
  • 管理以保留来自用户请求的数据
  • 并且,要么与系统通信以使用 HTTP 响应,要么
  • 将用户引导至下一页或上一页

设置示例 URL 将帮助您注意到 View 中没有提及单个变量,因为每个 View 组件都负责从模型层、对象或外部源获取数据或信息本身。 MVVM 使 Magento 将 HTML 页面拆分为多个称为容器的部分。 这些容器拥有通过树状结构连接的块。 这些块还包括一个 phtml 模板文件。

如果您专门谈论 MVVM 系统,Magento 块对象充当 ViewModel。 对象块能够扫描和读取业务模型、用户请求、从外部系统获取数据等。模板文件称为视图,它与视图模型的块对象单独协作

结论

Magento 2 正确地做出了迁移到 Model View ViewModel 系统的决定,因为这是当务之急。 MVVM 模型在将模板逻辑与业务逻辑分开方面领先一步。 该系统肯定是为了方便商家和最终用户,而开发人员可能会发现最初很难为由 Magento 2 和 MVVM 系统提供支持的网站编写扩展程序。