在视图中放置数据的最佳方式(MVC)

时间:2010-01-05 17:45:09

标签: php model-view-controller templates views presentation

在我正在使用的框架中,如果我想在视图中显示数据,我会这样做:

<h1><?php echo $this->header ?></h1>

最近我发现xTemplate并注意到它使用字符串占位符,因此xTemplate中的上述代码将是:

<h1>{HEADER}</h1>

我一直认为视图中的一个小软件是好的,也比做一个str_replace更快,但我最近开始和一个设计师合作,我认为html中的很多php标签可能会让他感到困惑。

我想知道你对这个问题的想法。

感谢。

注意:这可能是主观的,但我真的想找出最好的方法,或者至少知道这两种方法的所有优点和缺点。

2 个答案:

答案 0 :(得分:8)

PHP被设计为模板语言。我认为在模板引擎上面创建模板引擎毫无意义。

比较

 Hi, <b><?=$username?></b>

 Hi, <b>{username}</b>

第一个变种真的很复杂吗?

如果你尝试Smarty,你会非常惊讶的复杂程度。这是纯粹的EVIL:http://www.smarty.net/manual/en/language.function.foreach.php

 {foreach name=outer item=contact from=$contacts}
   <hr />
   {foreach key=key item=item from=$contact}
     {$key}: {$item}<br />
   {/foreach}
 {/foreach}

阅读比PHP的foreachs更简单吗?不要让我笑。

EVIL。 不要使用PHP本身以外的任何模板引擎。 为您的设计师提供足够的帮助功能,他不会抱怨。

答案 1 :(得分:1)

有趣的问题。我不知道看到PHP会让设计师感到困惑,但PHP具有以下优势:

  • 您不必学习其他语法(模板语言)
  • PHP非常灵活,可以在模板中完成所有工作(当然,您不应该做任何事情)。