因此,我们有一个PHP + Zend框架+ 1.2学说的应用程序,具有以下结构:我的代码在哪里?控制器,服务还是型号?
控制器 - >操作 - >服务 - >模型
并非所有型号都通过服务与互动。我们目前的观点是,控制器可以直接使用模型,服务可能使用其他服务。
我的问题是:如果您有一段业务逻辑,您使用什么指导原则来确定实现该逻辑的代码是否应该位于模型,控制器或服务层中?我特别感兴趣的是Controller和Service层之间的区别。
下面是我们的开发团队已经拿出指引,但我在任何反馈/输入非常感兴趣,对他们:
- 服务和控制器包含 逻辑搭售各种组件 共同完成一个任务。 此逻辑可能不在 模型中以避免依赖关系,并使 模型更具可重用性。 这 逻辑也可能不是在模型 因为我们认为该模型应该 避免食用的东西了 应用程序栈,以避免不必要的 依赖(例如:在 模式将不消耗服务或 控制器)。
- 当代码可能由多个模块或控制器使用 时,使用服务而不是控制器。
- 模型应该包含尽可能多的逻辑,但避免 引用应用程序特定的 功能。通常,型号 至少包含验证逻辑。
- 对于任何一项功能,首先考虑将其放置在型号 中。如果有一个引人注意的原因,请考虑服务 (同时考虑开销和 用于维护新服务)。 如果不需要服务,并且 代码将不会在此 应用程序中重复使用,请使用控制器。
+1好问题。 – 2010-07-21 00:20:56