【发布时间】:2012-02-09 17:15:16
【问题描述】:
在 symfony 中,我看到一些编码人员将业务逻辑放入操作(即控制器)中,而一些编码人员将其放入模型中(Doctrine)。业务逻辑应该属于哪里,在控制器还是模型中?如果我不使用 Doctrine,它只是纯文本文件怎么办?
【问题讨论】:
标签: php model-view-controller frameworks symfony1
在 symfony 中,我看到一些编码人员将业务逻辑放入操作(即控制器)中,而一些编码人员将其放入模型中(Doctrine)。业务逻辑应该属于哪里,在控制器还是模型中?如果我不使用 Doctrine,它只是纯文本文件怎么办?
【问题讨论】:
标签: php model-view-controller frameworks symfony1
将业务逻辑放在控制器中是一种不好的做法,模型就是它的家。
如果你没有 Doctrine,你仍然可以拥有自己的实体、模型类(你应该)。您的文件可以被抽象化,然后将它们的业务逻辑放在它们自己的类中,而不是放在控制器中。
这都是关于 MVC 的,而 M 完全取决于你。
【讨论】:
标准的 Symfony 和 MVC 约定会让控制器只做必要的事情来接收从视图或视图传递的信息。在大多数情况下,对该信息的任何数据处理都应位于您的模型和库类中,可以在其中设置它们以实现最佳重用或结构化代码组织。
Symfony 最大的优势之一是,任何其他优秀的 Symfony 开发人员都可以快速将代码编入任何其他优秀 Symfony 开发人员的项目中,这主要是因为 MVC 约定和 Symfony 以良好的编码强加于您的开发的组织标准。
【讨论】:
巴士。逻辑不应该存在于控制器中。控制器应该很好地控制或指导他们所在的应用程序中的控制流。
巴士。逻辑应该存在于域级对象中,它们可以在各种应用程序之间共享。
【讨论】: