Symfony2和视图模型的MVC概念

时间:2012-05-16 17:57:42

标签: model-view-controller design-patterns symfony naming-conventions

我认为Symfony2缺少 ViewModel (如ASP.NET MVC Framework)的概念,即与视图关联的模型。 Symfony2(作为文档)通常将数组分配给视图。

视图模型可以是PHP类,但它与表单模型不同,有时它与域实体相同。在处理要显示的大量信息时,它有时很有用。

无论如何,是否有任何关于视图模型应该在Symfony2中使用的约定?任何特定文件夹?到现在为止:

Symfony2/src/MyCompany/MyBundle/Form/Model

包含与表单关联的模型。和

Symfony2/src/MyCompany/MyBundle/Entity

用于域实体(绑定到数据库表)。

非常感谢您的建议。那么Symfony2/src/MyCompany/MyBundle/Model呢?

2 个答案:

答案 0 :(得分:0)

只要您的命名空间反映其位置,您放置ViewModel的位置并不重要。

我会将其放在src/MyCompany/MyBundle/View/Model中,然后您的命名空间将为MyCompany\MyBundle\View\Model

答案 1 :(得分:0)

在Symfony2中,没有像ViewModel这样的概念。您直接传递给模板实体或模型。不过,您可以构建自己的ViewModel。

实体不是模型。如您所说,它们是学说管理对象或域实体。如果您想拥有商业模式,请将它们放在MyBundle / Model中,就像许多其他包一样(例如,FOSUserBundle)。