2012-07-29 34 views

回答

4

查看MVC启发式Web模式中的类(在Web上实现传统的MVC非常困难,仅使用PHP就不可能)负责表示逻辑。然后创建对请求的响应并处理多个模板。

信息从模型层到选定视图的方式很大程度上取决于MVC启发模式的实现方式。如果您使用的是MVP或MVVM,则信息由控制器提供,并且该视图是被动的(但视图是而非哑模板)。如果您要使用Model2 MVC或HMVC模式,则视图将从模型图层处于活动状态。

当此视图已获取信息时,它决定与模板合并。或者即使模板是必要的。然后创建响应。

每个View生成的响应可以是HTML,JSON,XML或纯文本。或者,如果需要的话,只发送一个HTTP头(就像做重定向时一样)。这全是演示逻辑的一部分。

-1

视图层是返回的HTML数据

+0

-1,视图不是图层。它是由视图和控制器组成的“表示层”的一部分。另外,因为当层由功能组成时? – 2012-07-29 23:10:44

+0

谢谢@tereško但我希望你能阅读这个问题。 – pckabeer 2012-07-30 05:05:55

+0

如果OP的两个建议答案都是错误的,那么您必须选择一个答案。 – 2012-07-30 09:35:44

3

模型,控制器和视图的边界可以证明这样的功能:

/* model models/post.php */ 

<?php 
    class Post { 
    public static all() { 
     return Array(...); 
    } 
    } 
?> 

/* controller /posts/index.php */ 

<?php 
    require "../../models/post.php" 
    $posts = Post.all(); 
    require "../../views/posts/index.php" 
?> 

/* view /views/posts/index.php */ 

<?php foreeach ($posts as $post): ?> 
    <p><?php echo $post['name']; ?></p> 
<?php endforeach; ?> 

意识形态上很可能只是功能,但通常的做法是像模板引擎中的模板。所以视图层是html + data insertions(没有我们如何得到的逻辑和为什么)。例如,意识形态也是功能,但不是框架编程语言的功能。

+0

-1:视图不是一个愚蠢的模板,模型不是一个类。 – 2012-07-29 17:48:10

+0

这是非常简单和错误的看MVC(它实际上是MVP的相同的错误实现,已由Rails传播)。你的回答坚持认为,这些观点没有逻辑。基本上你的答案与[pckabeer's](http://stackoverflow.com/a/11707811/727208)相同,只是填充了错误的代码。 – 2012-07-30 02:23:19

0

视图是“模板”
模式是“数据”
控制器是“连接器”和algorithems地方。

+0

-1:视图不是模板,模型不是数据,你甚至没有丝毫的想法控制器应该做什么。 – 2012-07-29 17:44:08

0

视图层受制于您希望在客户端上以可视形式显示的内容。在大多数情况下,它是HTML,CSS和Javascript,你也可以使用XML和JSON。

在GENRAL,

控制器询问模型,以提供数据。

控制器可以根据需要更改此数据。

控制器将数据发送到视图以在template/html的帮助下显示。

+0

这是MVP的混蛋,由Rails和其他以原型为重点的框架推广。 – 2012-07-29 17:34:59

+0

不,我说的是MVC而不是MVP – 2012-07-29 21:10:59

+0

控制器从模型层请求信息并将其传递给视图实例称为“主讲者”。 – 2012-07-29 23:00:39