PHP:关于MVC中的视图层


PHP: Regarding the view layer in MVC?

关于MVC模式,视图层应该是"返回"HTML数据的函数,还是视图层实际上是HTML数据本身?

受MVC启发的web模式中的视图类(在web上实现经典MVC非常困难,只有PHP是不可能的)负责表示逻辑。然后创建对请求的响应并处理多个模板。

从模型层到所选视图的信息获取方式在很大程度上取决于实现了哪种MVC模式。如果您正在使用MVP或MVVM,则信息由控制器提供,并且视图是被动的(但视图是而不是哑模板)。如果您使用的是Model2MVC或HMVC模式,则视图处于活动状态,并从模型层请求信息。

当该视图获取了信息后,它决定使用模板进行组合。或者即使模板是必要的。然后创建响应。

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

模型、控制器和视图的边界线可以这样显示:

/* 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(没有我们如何得到以及为什么得到的逻辑)。从意识形态上讲,它也是函数,但不是框架编程语言的函数

View是"模板"
模型是"数据"
控制器是"连接器"和算法的场所。

视图层受到您希望在客户端上作为演示显示可见的内容的约束。在大多数情况下,它是HTML、CSS和Javascript,您也可以使用XML和JSON。

在一般情况下,

管制员要求模型提供数据。

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

控制器将数据发送到View以在template.html的帮助下呈现。

View Layer是返回HTML数据的函数