代码之家  ›  专栏  ›  技术社区  ›  Mathew

为什么要将模板引擎与框架一起使用?

  •  28
  • Mathew  · 技术社区  · 15 年前

    我最近发现了PHP框架 Kohana (这太棒了)并且正在阅读有关将其与模板引擎(如 Smarty Twig . 我的问题是为什么要麻烦?毫无疑问,根据定义,MVC框架是一个模板化引擎。甚至“原始”PHP也可以说是一个模板化引擎。在诸如Kohana这样的框架中,除了已经存在的内容之外,添加另一个抽象级别还有什么可能的好处呢?

    编辑- 我认识到MVC框架与模板化引擎不是一回事,但V部分确实做了同样的工作?也许更好的表达方式是:为什么在MVC框架的V部分之上添加模板引擎?

    6 回复  |  直到 10 年前
        1
  •  17
  •   coreyward    15 年前

    我有两个很好的理由可以考虑这样做…

    1. 创建以一致格式在整个站点中重复的标记更容易,而且您可以在以后更新它,而无需进行大量的grepping。
    2. 如果这是一家真正的公司,那么决定内容的人不太可能真正熟悉HTML,更不用说PHP了。拥有一种简单的模板语言,它可以让样式保持正确的外观,并且在没有太多代码知识的情况下生成有效的标记,这非常方便。
        2
  •  17
  •   mauris    15 年前

    首先,原始PHP不是模板化引擎。

    接下来,MVC框架定义框架分为模型、视图和控制。这并不意味着框架具有模板引擎,尽管视图可以与本机或外部模板引擎集成。因此,框架可能有也可能没有模板化引擎。

    第三,视野!=模板。视图仅指数据的显示方式-通常不涉及模板,而模板引擎指的是能够将数据很好地放入模板中的代码-当您可以在模板中修改所有文件时,您可以大大减少修改所有文件的需要。

    最后,框架用户可能更喜欢使用更常见的模板引擎,如Smarty,而不是框架中的本机模板引擎。您不需要学习本机模板引擎中的新标记。

        3
  •  8
  •   DGM    15 年前

    除非你允许短标签,

    {$foo}
    

    <?php echo $foo; ?>
    

    乘以一个大项目,它就加起来了。

        4
  •  6
  •   SingleNegationElimination    15 年前

    之所以需要一个单独的模板引擎,一个重要的原因是原始的PHP对于您的站点的表示有点过多。如果只是你在制作你的网站,并且你对网站的模板如何组合有了很好的了解,那么这并不是一个真正的缺点,但是对于更大的项目,它会阻碍。

    如果您的项目已经超出了单个开发人员的能力,或者您甚至想在此之前添加设计器,那么PHP可能是一种难以用语言来表达演示文稿的语言。专门构建的模板语言之所以占优势,是因为它们很简单,而且不会给你太多的束缚,而只会让你自己上吊。

    大型项目,即使它们不需要来自多个开发人员的大量输入,也会使普通PHP的自由形式有点笨拙。专门构建的模板引擎为每个模板如何与其余模板匹配提供(或强制实施)基本结构。

        5
  •  2
  •   Community CDub    8 年前

    Mauris 已经介绍了为什么是MVC!=模板引擎,但我想补充一点,模板引擎越强大,您的模板就越干净、越简洁。这使得不熟悉PHP的人编辑它们特别容易(例如,如果设计师/前端开发人员需要编辑HTML)。一般来说,MVC并不吹嘘这种功能。

    看看这个 example 来自SMARTY。我从来没有使用过这个引擎,回答这个问题是我第一次看到它的标记,但我已经知道它在做什么了。

    此外,由于Smarty和其他引擎为您处理一些日常事务,例如第一个示例中的可选行颜色和空数据集的可选内容,以及格式化等愚蠢的事情,因此您必须编写的代码量明显较少。 <select> 清单 this example .

        6
  •  1
  •   Artjom B.    10 年前

    MVC实现了对PHP模板的管理,如果您与Web设计人员一起工作,那么最好使用HTML模板。聪明的人和小树枝都很出名。 不管怎样,只要选择你觉得更舒服的模板引擎。