我一直在寻找 Symfony2 结构和捆绑包中的模型,但没有。
Symfony2 没有模型的原因是什么?
MVC 是错误的方式吗?
我只是好奇,因为我知道 CodeIgniter 实际上也不需要使用模型。在某些情况下,您可以将所有内容放在控制器甚至模型中;)。
有人可以更深入地解释一下吗?
我一直在寻找 Symfony2 结构和捆绑包中的模型,但没有。
Symfony2 没有模型的原因是什么?
MVC 是错误的方式吗?
我只是好奇,因为我知道 CodeIgniter 实际上也不需要使用模型。在某些情况下,您可以将所有内容放在控制器甚至模型中;)。
有人可以更深入地解释一下吗?
那是因为 Symfony2 的前身 Fabien Potencier 认为 Models 不属于 Symfony。这就是为什么他将其称为 HTTP 框架。另见他写的这篇文章:“什么是 Symfony2?”
[...] 你应该知道 Symfony2 实际上是为控制器部分、视图部分提供工具,而不是模型部分。您可以手动创建模型或使用任何其他工具,如 ORM。当然,像 Doctrine2 和 Propel 这样最著名的 ORM 存在紧密集成;但它们是可选的依赖项。Symfony2 的核心功能不会也永远不会依赖任何 ORM。
Doctrine2 ORM 使用存储库来接管将数据库映射到类的控制。如果您想在存储库中使用自定义方法,您可以创建自己的存储库。这意味着可以将存储库视为一种模型。
因为他们不想。
艰难的答案,但没有一成不变的编程方式。有许多不同的方法,如果你愿意,你可以选择遵循它们,但没有人在做你。在这种情况下,Symfony2 的开发人员决定不需要模型。
这并不意味着 MVC 是错误的。我拥有一辆轿车,但如果你拥有一辆 SUV,这是否意味着你做错了?只是完成工作的另一种方式。
因为在正确的 MVC 中没有“模型”。模型是一层。就像表示层(包含控制器、视图和模板)一样。
相反,您应该寻找的是:服务、映射器和域对象。这些是模型层中比较常见的部分。