embarknow / adr
dev-master
2016-01-26 11:51 UTC
Requires
- embarknow/payloads: dev-master
- psr/http-message: ^1.0
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)
- 动作实例化领域对象并获取有效载荷响应
- 动作实例化响应者。响应者处理响应,无论有效载荷是否有数据。