【发布时间】:2016-09-16 22:55:48
【问题描述】:
目前,模型层的服务部分持有MainService,目标如下
MainService => Communicates with persistence layer,
does the UI logic,
renders the respective view
the question here 的 OP 描述了这个想法;视图应该做 UI,然后渲染(依赖)各自的模板。
MainService 的示例类似于
echo $this->factory->template()
->file('/path/to/template')
->set('url', 'some/url')
->render();
这显然与Views 的概念相矛盾。这就是我感到困惑的地方——当前的服务实现看起来很像一个视图。那是风景吗?
【问题讨论】:
-
该定义似乎将“服务”用于我认为的控制器。如果您查看一些大型“mvc”框架(symfony、laravel)是如何实现 mvc 的,那么您将请求路由到控制器,该控制器接受用户输入并对其进行任何处理,最好使用服务。然后渲染一个视图/模板
-
Afaik,php中的控制器多半是一个服务,是模型层的一部分。
-
在提到的“mvc”实现中,他们使用日志服务、邮件服务等服务。请注意,我经常使用带引号的“mvc”,因为这种模式只是在一定程度上被实施。它似乎不是一成不变的,而且经常有些固执己见,这种(和其他)模式是如何实现的。如果您对结构/模式的辩论感兴趣,我建议您在codereview.stackexchange.com 发帖
-
是的,他们使用流行语“mvc”进行营销。此外,提到的帖子的 OP 对此有一些很好的引用。
-
@JimL fyi,这里有另一篇文章:r.je/views-are-not-templates.html
标签: php oop model-view-controller view model