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