【问题标题】:include simulating a forward in PHP on MVC?包括在 MVC 上模拟 PHP 中的前锋?
【发布时间】:2013-02-11 05:22:18
【问题描述】:

如果在 PHP 中尝试 MVC 只是在 controller.php 文件的末尾添加 include 'view.php';,这是否可以视为转发,因此仍然是 MVC?

【问题讨论】:

  • 我说不,因为视图现在是控制器的一部分,并且控制器现在依赖于该文件来工作。
  • 在不执行 require/include 的情况下如何访问不同的类/对象?我建议使用 require_once 而不是 include。
  • @Lawrence:在 MVC 控制器中应该决定使用哪些视图。不过,您不必直接在控制器中使用包含将它们紧密耦合。我会亲自制作一个视图控制器,它决定哪个视图是正确的,然后加载正确的内容。
  • @ChrisChristensen 显然是的,但是像 OP 所说的那样,在控制器末尾硬编码 include('view.php') 是不应该的。如果编译整个文档需要一个以上的视图怎么办,至少有一个方法可以将控制器中定义的变量传递给视图。像 99.9% 的主流 MVC 框架

标签: php model-view-controller controller include forwarding


【解决方案1】:

没有。不是真的。

在 MVC 和受 MVC 启发的模式中,控制器的职责是改变当前视图实例和模型层的状态。与“转发”无关。

视图和控制器虽然相互关联,但并不是一回事。当您使用“包含”(默认情况下)时,您将添加文件作为执行它的代码的一部分。

基本上,在您当前的设置中,视图实例和控制器实例之间没有分离。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-17
    相关资源
    最近更新 更多