我发现自己需要将一些功能移动到服务层。在这种特殊情况下,它涉及有关 zend-paginator的示例。
在示例中,服务层只是控制器和模型之间的中间阶段。这似乎是它的预期角色,在某些情况下它似乎很有意义。
不过,这对我提出了一些问题。
首先,我是否可以不那么容易地将示例服务代码移动到控制器而不会受到任何真正的惩罚,这对我来说不会因为删除一层代码而受益吗?
假设将代码移动到服务层有明显的好处,那么我的映射器交互的其余部分会发生什么?控制器是否为某些任务访问服务层而为其他任务访问映射器,或者服务层是否成为所有映射器交互的代理?
对于诸如从表单创建新行之类的事情,服务层不会增加任何价值,因此它实际上相当于服务层级别的传递函数。
将它用于某些任务似乎会使以后的事情变得复杂,而将其用作代理似乎是我们故意引入代码复制和复杂性。
对“最佳实践”的任何澄清都会非常有帮助。