Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework 使用条令2和存储库,服务层的目的是什么?_Zend Framework_Design Patterns_Web Applications_Service_Doctrine Orm - Fatal编程技术网

Zend framework 使用条令2和存储库,服务层的目的是什么?

Zend framework 使用条令2和存储库,服务层的目的是什么?,zend-framework,design-patterns,web-applications,service,doctrine-orm,Zend Framework,Design Patterns,Web Applications,Service,Doctrine Orm,我正在设计我的应用程序,我正在使用条令2和Zend框架 目前,我已经编写了我所有的实体,我打算开始编写存储库,我想知道我的服务层是否会重复存储库 在我使用Doctrine 2存储库时编写服务层是否值得 然而,我在这里和那里读到,例如,可以使用服务层进行缓存 您有任何实现示例吗?存储库和服务之间的区别在于,我让我的服务接受数据数组以进行更新、创建等。IIRC,一个真正的存储库应该只处理域对象。例如,您可以做的另一件事是使用您的服务层来处理产品、配置文件图片或缓存等的缩略图生成。关键是服务与处理实体

我正在设计我的应用程序,我正在使用条令2和Zend框架

目前,我已经编写了我所有的实体,我打算开始编写存储库,我想知道我的服务层是否会重复存储库

在我使用Doctrine 2存储库时编写服务层是否值得

然而,我在这里和那里读到,例如,可以使用服务层进行缓存


您有任何实现示例吗?

存储库和服务之间的区别在于,我让我的服务接受数据数组以进行更新、创建等。IIRC,一个真正的存储库应该只处理域对象。例如,您可以做的另一件事是使用您的服务层来处理产品、配置文件图片或缓存等的缩略图生成。关键是服务与处理实体没有严格的关系

我仍然使用自定义存储库作为所有自定义查询的容器,等等;它们在我的服务类中使用,有时直接在我的控制器中使用。尽管我使用我的服务进行序列化(用于JSON响应)


仍然有一个小的灰色区域,你应该在哪里,你只需要感觉出来。最后:如果您不考虑服务层,而将该逻辑放入您的存储库中,那么维护和可伸缩性方面的工作就不会那么多,只是类责任中的定义就更少了。

我一直在寻找合适的(服务层、具有条令2和ZF的存储库)实施示例很长时间。
我发现这个示例最好,应该对您的工作有帮助


还有一件事,这将有助于理解服务层的理论部分

这就是它。通常,您会将任何自定义DQL查询作为方法放在存储库中。然后,将任何其他逻辑放入服务中。通常,在ZF中,您将投入服务的内容会写入控制器操作中,因此这取决于您是否希望/需要分离。特别是,如果您发现自己在控制器中复制了逻辑,那么这通常是需要为其提供服务的迹象。好的,谢谢您的回答,那么错误处理呢,我们应该在这样的体系结构中在哪里处理异常呢?
重点是,它们实际上严格地与使用原则相关
什么是严格的?存储库?您还需要关于服务层的更多信息吗?