每个页面是否有一个控制器,它只返回一个包含所有 HTML 和 CSS 的视图?
在视图和控制器之间建立 1:1 的关系是一种常见的做法。在实现 MVC 时,视图通常代表网站中的一个页面(如 StackOverflow 中的用户配置文件),它会根据模型层状态而改变(想想:您查看您的配置文件或其他人的配置文件)。
一个特定的控制器将负责处理来自该页面的所有(或大部分)用户交互。
在正确实现的 MVC 或受 MVC 启发的设计模式中,控制器只会更改视图的状态(在构造函数中提供给它)。响应的生成(无论是 HTML 页面、HTTP 标头还是 JSON 文件)由视图本身处理。由于控制器不应该创建视图,因此返回它没有意义。
控制器是否从其他控制器中提取页眉和页脚信息,然后从不同的视图中提取主要内容?
如果您使用的是HMVC 模式(实际上与经典 MVC没有直接关系),那将是这种行为。
在适当的 MVC 或受 MVC 启发的结构中,视图将从模型层获取数据,并根据该信息从多个模板组装 HTML 页面。如果你想学习如何用 PHP 制作简单的模板,请阅读这篇文章。
我想我不明白这一切是如何进行的。
在这种情况下,您应该首先阅读Martin Fowler的“GUI 架构”。如果您对整个 OOP 还很陌生,请观看本文底部列出的每一堂课。
主要话题
如果您有大量的静态页面,可以使用 MVC 设计模式来创建站点(您基本上会将它们视为缓存结构,可以查看哪些视图),但这可能有点无意义。
MVC 是一种复杂的设计模式,旨在通过应用SoC为大型应用程序带来秩序。
MVC 不是一种神奇的喷剂,当应用于额头时,它会变得更好。