π框架之ADM分层架构

目录结构

phalapi 2.X版本与第一个版本在项目目录结构上有很大的差异,更面向自动化、国际化和流行化,学习起来更易懂。(前提是你理解了composer、命名空间和psr-4规范),今天主要带领大家理解一下ADM模式。


π框架之ADM分层架构_第1张图片
image.png

什么是ADM模式?

在传统Web框架中,惯用MVC模式。可以说,MVC模式是使用最为广泛的模式,但同时也可能是误解最多的模式。然而,接口服务这一领域,与传统的Web应用所面向的领域和需要解决的问题不同,最为明显的是接口服务领域中没有View视图。
π框架的开发团队在MVC模式的基础上去掉了View视图层,添加了Domain领域业务层。从而涌现了Api-Domain-Model模式,简称ADM模式。(来自开发文档)

Api接口服务层

Api接口层称为接口服务层,负责对客户端的请求进行响应,处理接收客户端传递的参数,进行高层决策并对领域业务层进行调度,最后将处理结果返回给客户端

π框架之ADM分层架构_第2张图片
image.png

实例:

π框架之ADM分层架构_第3张图片
image.png

红框:命名空间表示当前文件user.php在顶级命名空间App下的Api文件夹

顶级命名空间App可在根目录下的composer.json文件设置

黄框:接口参数规则配置,参数规则是针对各个接口服务而配置的多维规则数组,由接口类的getRules()方法返回。

(若未显示全,可右滑)
一维下标是接口类的方法名,对应接口服务的Action;
二维下标是类属性名称,对应在服务端获取通过验证和转换化的最终客户端参数;
三维下标name是接口参数名称,对应外部客户端请求时需要提供的参数名称。

π框架之ADM分层架构_第4张图片
image.png

接口参数及type类型请参考开发文档 http://docs.phalapi.net/#/v2.0/api

篮框:Api下的方法login是接口服务名称,对接收数据进行处理,$this获取所有数据,可调用D层中方法,成功返回200,失败会返回提示状态码

实例:

这是用户注册的Api层:


π框架之ADM分层架构_第5张图片
image.png

π框架之ADM分层架构_第6张图片
image.png

Domain领域业务层

Domain层 负责对领域业务的规则处理,重点关注对数据的逻辑处理、转换和加工,封装并体现特定领域业务的规则。
官方给出的建议是:


π框架之ADM分层架构_第7张图片
image.png

拥有良好的分层结构,学会它,在我们往后的代码管理中得到便利、开发更高效且让代码变得有趣起来。

实例

这是一个用户注册的Domain层:


π框架之ADM分层架构_第8张图片
image.png

Model数据模型层

Model层负责技术层面上对数据信息的提取、存储、更新和删除等操作,数据可来自内存,也可以来自持久化存储媒介,甚至可以是来自外部第三方系统。

π框架之ADM分层架构_第9张图片
image.png

学过thinkphp5的人可以理解,运用m层对数据库进行操作会大大方便我们的开发。可参照开发文档学习 http://docs.phalapi.net/#/v2.0/model

实例:

这是一个用户注册的Model层:


π框架之ADM分层架构_第10张图片
image.png

ADM调用关系图

π框架之ADM分层架构_第11张图片
image.png

原文作者:------ 沙蒿 ------
关注我吧《程序员的碎碎念》作者,不会ui的前端不是好后端
不忘初心,牢记使命,对于文章内容有疑问的或者想深入交流学习的朋友可以加我微信:2283743369

你可能感兴趣的:(π框架之ADM分层架构)