为什么要使用带框架的模板引擎?

Mat*_*hew 28 php model-view-controller templates frameworks kohana

我最近发现了PHP框架Kohana(非常棒)并且正在阅读一个关于将它与模板引擎(如SmartyTwig)结合使用的线程.我的问题是为什么要打扰?当然,根据定义,MVC框架是一个模板引擎.甚至"原始"PHP也可以说是一种模板引擎.除了Kohana等框架中已经存在的内容之外,还有哪些可能的好处呢?

编辑 - 我意识到MVC框架与模板引擎不是一回事,但V部分肯定会做同样的工作吗?也许是一种更好的措辞方式; 为什么要在MVC框架的V部分之上添加模板引擎?

mau*_*ris 17

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

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

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

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

  • 就像我说的,定义视图可能无法定义模板.模板是可以跨多个页面使用的文件.每个页面都是不同的视图. (2认同)

cor*_*ard 17

我有两个很好的理由让我想到这样做......

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


DGM*_*DGM 8

除非你允许短标签,

{$foo}
Run Code Online (Sandbox Code Playgroud)

比...更具可读性

<?php echo $foo; ?>
Run Code Online (Sandbox Code Playgroud)

它累积在一个大型项目上.

  • 这是有道理的,简单地减少击键可能是一个天赐之物!:) (2认同)

Sin*_*ion 6

您想要一个单独的模板引擎的一个重要原因是因为原始PHP对于您的网站的呈现来说有点太多了.如果它只是你制作你的网站,并且你对网站的模板如何组合起来有一个很好的想法,那么这不是一个真正的缺点,但对于大型项目,它会妨碍.

如果您的项目已经超出了单个开发人员,或者如果您想在此之前添加设计器,那么PHP可能是一种难以表达演示文稿的语言.专用的模板语言具有优势,因为它们很简单,而且不是给你这么多的绳索,让自己挂起来.

较大的项目,即使它们不需要来自多个开发人员的大量输入,也可以使纯PHP的自由形式有点笨拙.专用模板引擎提供(或强制执行)每个模板如何与其余模板匹配的基本结构.