【发布时间】:2016-05-11 05:54:20
【问题描述】:
symfony 2 安装程序提供了一个最佳实践目录结构,但没有太多说明应该如何使用这些目录,每段代码属于哪里,确保 symfony 框架将其缩小到视图、实体和控制器,服务等,但更多时候不是,程序员最终将 DQL 查询放入控制器和一些逻辑来处理特定任务,虽然这可以完成工作,但必须有更好的方法,甚至超出 symfony 的开箱即用目录结构,目前正在寻求更好的设计模式,尽可能地模块化和重用
在这个任务中,在 interwebz 上找到了几篇好文章,花了一天的时间,想出了一个计划,将所有数据库交互分离到存储库,所有逻辑到服务,并保持控制器“瘦”作为从存储库调用方法和调用服务的中心点。听起来不错,将是模块化的,代码可以重用....但是
这以某种方式从 OOP 概念转移到过程编程中,并不是说它有什么问题,只是没有利用 OOP 的强大概念
是否可以通过添加更多功能使对象更“强大”使其变得更好?根据定义,服务应该执行一个任务单元,我的方法会使它们变得又大又丑
此博客 here 上的一些优点,但无法真正弄清楚他们试图提出的解决方案是什么
一般来说,您在服务中发现的行为越多, 您可能会剥夺自己的域名优势 模型。如果您所有的逻辑都在服务中,那么您已经蒙蔽了自己 -马丁·福勒
总结面向服务的方法是否没有利用 OOP 的概念?以及如何补充这一点
【问题讨论】:
-
您想回答哪些问题?现在你的问题对我来说太宽泛了。
-
@xabbuh 我想了解更多关于 symfony 项目中的设计模式,面向服务的方法没有很好地利用 OOP 概念,可以做些什么来补充呢?我想设计我的项目以使用抽象和继承。我想知道这两者在哪里适合面向服务的方法
-
我使用 symfony 是因为我认为它在各个方面都很完美
标签: php symfony oop design-patterns