当前位置:  首页>> 技术小册>> Magento2后端开发高级实战

从上到下,Magento可以分为四个体系结构层,即表示层、服务层、域层和持久层。

表示层

表示层是我们通过浏览器直接交互的层。它包含布局、块、模板,甚至控制器,这些控制器处理往返于用户界面的命令。客户端技术(如jQuery、RequireJS、CSS和LESS)也是该层的一部分。通常有三种类型的用户与该层交互,即web用户、系统管理员和进行web API调用的用户。

由于Web API调用可以通过HTTP进行,其方式与用户使用浏览器的方式相同,因此两者之间存在一条细线。当web用户和web API调用使用表示层时,系统管理员有权更改它。这种更改表现为设置活动主题和更改CMS(内容管理系统的缩写)页面、块和产品本身的内容。

当与表示层的组件交互时,它们通常会调用底层服务层。

Service服务层

服务层是表示层和域层之间的桥梁。它包含定义实现行为的服务契约。服务契约基本上是PHP接口的花哨名称。这一层是我们可以找到REST/SOAP API的地方。店面上的大多数用户交互都是通过服务层进行路由的。类似地,进行REST/SOAP API调用的外部应用程序也与该层交互。

当与服务层的组件交互时,它们通常会调用底层域层。

域层

域层实际上是Magento的业务逻辑。这个层是关于组成业务逻辑的通用数据对象和模型的。域层模型本身对数据持久性没有贡献,但它们确实包含对资源模型的引用,该资源模型用于检索数据并将其持久化到MySQL数据库。

一个模块中的域层代码可以通过使用事件观察器、插件和di.xml定义与另一个模块的域模块代码进行交互。我们将在后面的其他章节中研究这些细节。考虑到插件和di.xml的强大功能,需要注意的是,这种交互最好使用服务契约(PHP接口)来建立。

当与域层的组件交互时,它们通常会调用底层的持久性层。

持久层

持久层是数据被持久化的地方。该层负责所有CRUD(创建、读取、更新和删除的缩写)请求。Magento为持久层使用了一种活动记录模式策略。模型对象包含一个资源模型,该模型将对象映射到一个或多个数据库行。

这里,区分简单资源模型和实体属性值(EAV)资源模型的情况很重要。一个简单的资源模型映射到一个表,而EAV资源模型的属性分布在多个MySQL表上。例如,Customer和Catalogresource模型使用EAV资源模型,而时事通讯的Subscriber资源模型使用简单的资源模型。


以上就是关于magento2架构介绍相关的内容。


该分类下的相关小册推荐: