pmjones / adr

服务器端应用程序的MVC替代方案。

dev-master 2018-01-19 17:43 UTC

This package is auto-updated.

Last update: 2024-09-11 04:39:47 UTC


README

此示例演示了一个行动域响应器用户界面子系统,以及相应的域逻辑和数据源元素,用于一个简单的博客系统。

这不是一个运行示例,因为不能直接放入web服务器中开始正常运行。

然而,在tests/目录中有一个完整的测试套件。(这些更像是集成测试而不是单元测试,但在这个示例中足够用了。)通过执行composer install后,再运行./vendor/bin/phpunit来运行测试。

没有包含身份验证、授权或会话机制。虽然在实际系统中这是必要的,但它们会增加示例的复杂性,并使得关注点的分离更加困难。

操作

操作类依赖于第三方HTTP请求和响应接口。

每个操作解析传入的请求,传递单个类型提示的方法参数。不同的可能需要不同的输入签名,例如数据传输对象或包含所有可能请求值的通配符数组。

基本ApplicationService类通过神奇的__call()方法保护了所有“真实”服务方法。这允许服务实现一些对所有服务方法都通用的功能,例如异常处理,尽管它也会阻碍IDE自动完成。

BlogService方法返回一个封装域结果和状态指示器的域Payload。这标准化了域返回签名,使BlogResponder的工作更加易读。

域逻辑使用数据映射器进行数据源交互(如BlogMapper等)。

响应器

每个响应器调用对应于域Payload状态的方法来构建HTTP响应。

基本响应器类依赖于第三方HTTP请求接口和响应对象。

基本BlogResponder类依赖于基于PHP的第三方模板视图系统。模板位于resources/templates/blog/