ADR 模式库

dev-master 2016-01-26 11:51 UTC

This package is auto-updated.

Last update: 2019-02-28 16:40:14 UTC


README

遵循Paul Jones描述的模式

将客户端和Web应用之间的单个用户界面交互组织成三个不同的角色。

该模式,类似于MVC,使用其他模式来构建完整的Web环境;例如HTTP消息和路由。

ADR 组件

ADR 被划分为主要组件作为一个设计模式,然后我的实现有子组件,任何实现都是如此。

动作

是连接领域和响应者的逻辑。它使用请求输入与领域交互,并将领域输出传递给响应者。

输入验证

动作应执行某些类型的输入验证,以便在数据无效时将应用程序返回给客户端。

领域

是操作领域的逻辑。领域代表

  • 会话
  • 应用程序状态
  • 环境数据
  • 持久性

每个动作使用的领域对象可以根据需要利用许多其他领域对象;领域没有复杂性或层级的限制。

响应者

是构建HTTP响应或响应描述的逻辑。它处理

  • 正文内容
  • 模板
  • 视图
  • 头和cookie
  • 状态码
  • 等等...

HTTP 过程

  • 服务器接收HTTP请求
  • 应用程序构建自身
    • 注入器启动
    • 使用PSR-7,服务器构建相关的请求和响应对象
  • 服务器运行受请求影响的中间件队列
    • 队列可以提前返回响应,绕过ADR系统
    • 队列可以修改请求
  • 路由器尝试将请求URI与路由匹配
    • 找到路由并触发特定的路由中间件队列
    • 队列中的最后一项是路由动作、领域和响应者集合
  • 动作检查请求并验证任何输入(GET、POST)
    • 动作实例化领域对象并获取有效载荷响应
    • 动作实例化响应者。响应者处理响应,无论有效载荷是否有数据。