Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller Symfony2和视图模型的MVC概念_Model View Controller_Design Patterns_Symfony_Naming Conventions - Fatal编程技术网

Model view controller Symfony2和视图模型的MVC概念

Model view controller Symfony2和视图模型的MVC概念,model-view-controller,design-patterns,symfony,naming-conventions,Model View Controller,Design Patterns,Symfony,Naming Conventions,我认为Symfony2缺少了视图模型的概念(如ASP.NET MVC Framework),即与视图关联的模型。Symfony2(作为文档)通常为视图指定一个数组 视图模型可以是PHP类,但它与表单模型不同,有时它与域实体相同。它有时在处理要显示的大量信息时很有用 无论如何,在Symfony2中视图模型应该放在哪里有什么约定吗?有具体的文件夹吗?到目前为止,我已经: Symfony2/src/MyCompany/MyBundle/Form/Model 它保存与表单关联的模型。以及: Symfo

我认为Symfony2缺少了视图模型的概念(如ASP.NET MVC Framework),即与视图关联的模型。Symfony2(作为文档)通常为视图指定一个数组

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

无论如何,在Symfony2中视图模型应该放在哪里有什么约定吗?有具体的文件夹吗?到目前为止,我已经:

Symfony2/src/MyCompany/MyBundle/Form/Model
它保存与表单关联的模型。以及:

Symfony2/src/MyCompany/MyBundle/Entity
对于域实体(绑定到数据库表)


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

将视图模型放置在何处并不重要。。。只要名称空间反映其位置


我将它放在
src/MyCompany/MyBundle/View/Model
中,然后您的名称空间将是
MyCompany\MyBundle\View\Model
,在Symfony2中,没有ViewModel这样的概念。直接传递到模板、实体或模型。不过,您可以构建自己的ViewModel


实体不是模型。它们是条令管理的对象,或者如您所说的域实体。如果您想拥有业务模型,请像许多其他bundle一样将它们放在MyBundle/Model中(例如,)

听起来不错。但在许多情况下,我仍然认为实体是模型。无论如何,谢谢,我会像fosuserbundle一样。如果你说的是域模型,那么是的,实体是域模型中的一个项。@wilmoore是的,除非你想为实体支持两种数据库类型。您可以添加Doctrine ODM,其中不存在实体,只存在文档。如果您将模型用于域模型,那么您所需要做的就是更改在您的模型中实现ORM相关内容的底层对象。这只是条令方面的一点不好的术语。在ODM的所有文档中,他们都在谈论“持久模型”;然而,在一个坚实的体系结构中,“模型”实际上是为您的业务建模的事物的集合。它们指的是“持久模型”,但更准确的术语是“持久实体”。这里的示例:,谈到一个“用户”,并且假设一个用户是唯一标识的,那么它就是一个实体,无论您将其保存在何处。@wilmoore不,术语很好,但术语非常多。“持久性模型”是一组映射到数据库的对象。在ORM中,它们在ODM文档中也称为实体。“域模型”“是映射到业务需求的事物的集合。它们是独立的概念,但可以在同一个对象中实现。实现MVC并不一定要有一个ViewModel,所以与其说缺少它,不如说它没有,或者说不强迫您使用它。见: