什么可以更好地尊重MVC?

时间:2011-05-29 15:40:14

标签: php model-view-controller

尊重MVC会更好吗?

使用for循环创建一个视图:

<?php foreach($posts as $post){
            echo '<div class="post">'.$post.'</div>';
      }
?>

其中$ posts持有帖子的全部内容。

或在控制器中做出类似的事情:

<?php foreach($posts as $post){
          $html = $html + '<div class="post">'.$post.'</div>';
      }
?>

然后将$ html传递给视图并显示它们。

2 个答案:

答案 0 :(得分:4)

视图中可以接受诸如循环之类的简单逻辑,您不需要任何业务逻辑。由于此循环的逻辑用于显示目的,我将使用第一个。

通常在模板文件中,使用foreach:endforeach语法。

<?php foreach($posts as $post):?>
     <div class="post"><?php echo $post;?></div>
<?php endforeach;?> 

或者如果启用了短标签(请注意,这通常在生产服务器上禁用,但是&lt;?php无法禁用,所以我建议采用上述方法):

<? foreach($posts as $post):?>
     <div class="post"><?=$post?></div>
<? endforeach;?> 

然而,这是一项惯例而非规则。

答案 1 :(得分:1)

第一个。控制器不应该参与演示。如果视图中有太多逻辑,请将其移动到viewhelper / component / widget中。