【问题标题】:Bad Practice requiring file within a model?需要模型中的文件的不良做法?
【发布时间】:2012-10-11 09:32:54
【问题描述】:

我已经构建了一个 MVC php 应用程序,并且想知道,如果不必写出大量的 html 并设置数据,我是否可以不只是将所有这些 html(带有一些 php)放在一个单独的文件中,而只是需要吗?

例如:

$test = '<div>
         Test content
         <div>More content</div>
         </div>';
$APP->Template->setData('test', $test, FALSE);

我可以不只是使用:

$test = require("includes/content.php");
$APP->Template->setData('test', $test, FALSE);

这会被视为不好的做法吗?似乎通过要求文件,它可以缩短控制器的长度。

在这件事上征求任何人的意见会很好。

【问题讨论】:

    标签: php html model-view-controller


    【解决方案1】:

    这取决于您在何处执行包含:如果您在模型中执行包含,那将是错误的。但是,在视图中应该没问题。

    这是一个关注点分离的问题:模型是应用程序的主干,而视图负责显示模型的结果。

    我不明白,包含如何缩短控制器的长度。

    【讨论】:

    • 包含在我的控制器中,这会被视为不良做法吗?
    • 是的,html代码不属于控制器。控制器应该只粘合模型和视图。
    • 感谢 JvdBerg,这就是我想知道的一切。
    【解决方案2】:

    您打算包含的文件看起来像模板。这些应该是视图实例的句柄,当它开始拼凑一个 HTML 文档作为响应时。视图应该从模型层(它是一个层,而不是单一的对象类)请求信息,并根据接收到的数据决定什么是适当的响应形式。

    这样的代码在控制器中没有位置。在模型层中甚至更少。模型应该只包含领域业务逻辑并且完全忽略表示层。

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多