一文读懂Magento的系统架构及分层结构
  • 后端
  • 2023-06-26 17:50:26
  • 29880 阅读

在本主题中,我们将讨论Magento 2的体系结构。Magento 2的架构与Magento 1完全不同。它的架构旨在使源代码尽可能广泛和模块化。这种方法的主要目的是允许它根据项目的需要轻松调整和定制。每个业务逻辑和功能都以模块的形式设计。因此,每个模块都可以作为一个独立的单元工作。

Magento 2具有Model View ViewModel(MVVM)架构。此 MVVM 体系结构在模型层和视图层之间提供了更强大的分离,因为它与模型视图控制器 (MVC) 密切相关。MVVC 的简要说明如下:

型:它保存应用程序的业务逻辑,并依赖于用于数据库访问的关联类 - 资源模型。与MVC类似,它是应用程序操作所必需的数据管理和基本数据描述的逻辑。模型响应来自视图的请求。

视图:该视图是用户在屏幕上看到的图形界面。它负责显示对用户请求的响应。视图是一种结构或布局,它以特定格式表示数据。视图指定“数据的外观”。它是 ViewModel 提供的属性值或命令更改的订阅者。

视图模型:视图模型与模型层交互,并仅向视图层公开必要的信息。这是由Magento 2中模块的Block类处理的。需要注意的重要一点是,这通常是 MVC 系统的控制器角色的一部分。在 MVVM 中,控制器只负责处理用户流,这意味着它接收请求并告诉系统呈现视图或将用户重定向到另一个路由。

它包含一个模型,该模型被转换为视图,还包含可用于影响模型的命令。视图模型基本上是公开公共属性和命令的视图的抽象。

根据官方文档,Magento 2分为四层。

  • 表示层

  • 服务层

  • 域层

  • 持久层

Magento 2的层架构的详细描述如下。

1) 表示层

表示层是Magento 2架构的最上层。当我们与Magento的Web界面交互时,那时,我们正在与表示层代码进行交互。它包含所有控制器和视图元素,例如布局,模板,块和css.js等。表示层通常使用服务协定调用服务层。它可以与业务逻辑重叠。

Web 用户、系统管理员是表示层的用户

2) 服务层

服务层是表示层和域层之间的中间层。它在表示层和域层与特定于资源的数据之间架起了一座桥梁。服务层实现使用 PHP 接口定义的服务协定。这些服务协定允许我们在不破坏系统的情况下添加或更改业务逻辑资源模型。这是使用依赖关系注入配置文件 (di.xml) 完成的。

服务层授予对 API(REST/SOAP 或其他模块)的访问权限。它位于域层上方和表示层下方。

3) 域层

域层负责业务逻辑。它不包含特定于数据库或特定于资源的信息。域层定义了包含业务逻辑的通用Magento数据对象或模型。此逻辑描述可以对特定类型的数据(如 Customer 对象)执行的操作。

要使用 MySQL 调用从数据库中检索数据,每个域层模型都有一个对资源模型的引用。

4) 持久层

它描述了资源模型,该模型负责使用 CRUD(创建、读取、更新和删除)请求在数据库中提取和修改数据。为了完成这些请求,资源模型包含 SQL 代码。还实现了其他业务逻辑功能。

例如 - 数据库函数实现和数据验证。

学习Magento开发:

点击查看:-->  magento中文全栈二次开发