【问题标题】:Best way to place data in the view (MVC)在视图中放置数据的最佳方式 (MVC)
【发布时间】:2010-01-05 17:45:09
【问题描述】:

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

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

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

<h1>{HEADER}</h1>

我一直认为视图中的一点 php 是可以的,而且比 str_replace 更快,但我最近开始与设计师合作,我认为 html 中的很多 php 标签可能会让他感到困惑。

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

谢谢。

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

【问题讨论】:

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


    【解决方案1】:

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

    比较

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

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

    如果您尝试 Smarty,您会非常惊讶它是多么复杂。这是纯粹的邪恶: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 更易于阅读吗?别逗我笑。

    邪恶。 不要使用 PHP 本身以外的任何模板引擎。 为你的设计师提供足够的辅助函数,他不会抱怨。

    【讨论】:

    • PHP 之上的其他模板引擎也是如此。我可以理解 Python 的模板引擎,因为它没有嵌入 HTML,但是 PHP 的模板既奇怪又愚蠢。我曾经认为这是个好主意:(
    • 我也是这么想的。我见过聪明的代码(通过sugar 5模板),太可怕了!!!简直太可怕了。 xTemplate 似乎并没有那么糟糕:P 但我同意你的看法。我不使用的一件事是短标签,不知道为什么,但我从不喜欢它。
    【解决方案2】:

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

    • 您不必学习另一种语法(模板语言)
    • PHP 足够灵活,可以在模板中做所有事情(当然你不应该做所有事情)。

    【讨论】:

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