前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >π框架之ADM分层架构

π框架之ADM分层架构

作者头像
benny
发布2018-03-06 18:52:53
1.4K0
发布2018-03-06 18:52:53
举报

目录结构

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

什么是ADM模式?

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

Api接口服务层

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

实例:

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

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

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

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

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

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

实例:

这是用户注册的Api层:

Domain领域业务层

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

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

实例

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

Model数据模型层

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

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

实例:

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

ADM调用关系图

在这里,小编对代码进行了部分注释,希望对大家的学习有所帮助,也希望有问题加我微信(wzc88czw)交流学习心得。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的碎碎念 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录结构
  • 什么是ADM模式?
  • Api接口服务层
    • 实例:
      • 实例:
      • Domain领域业务层
        • 实例
        • Model数据模型层
          • 实例:
          • ADM调用关系图
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档