Mat*_*hew 28 php model-view-controller templates frameworks kohana
我最近发现了PHP框架Kohana(非常棒)并且正在阅读一个关于将它与模板引擎(如Smarty或Twig)结合使用的线程.我的问题是为什么要打扰?当然,根据定义,MVC框架是一个模板引擎.甚至"原始"PHP也可以说是一种模板引擎.除了Kohana等框架中已经存在的内容之外,还有哪些可能的好处呢?
编辑 - 我意识到MVC框架与模板引擎不是一回事,但V部分肯定会做同样的工作吗?也许是一种更好的措辞方式; 为什么要在MVC框架的V部分之上添加模板引擎?
mau*_*ris 17
首先,原始PHP不是模板引擎.
接下来,MVC框架定义框架分为模型,视图和控件.这并不意味着框架具有模板引擎,尽管View可以与本机或外部模板引擎集成.因此,框架可以具有或不具有模板引擎.
第三,View!=模板.视图仅涉及数据的显示方式 - 通常不涉及模板,而模板引擎指的是能够将数据很好地放入模板的一段代码 - 您可以在修改所有文件时大大减少修改所有文件的需要在模板中
最后,框架用户可能更喜欢使用更常见的模板引擎(如Smarty)而不是框架中的本机模板引擎.您无需在本机模板引擎中学习新标记.
cor*_*ard 17
我有两个很好的理由让我想到这样做......
除非你允许短标签,
{$foo}
Run Code Online (Sandbox Code Playgroud)
比...更具可读性
<?php echo $foo; ?>
Run Code Online (Sandbox Code Playgroud)
它累积在一个大型项目上.
您想要一个单独的模板引擎的一个重要原因是因为原始PHP对于您的网站的呈现来说有点太多了.如果它只是你制作你的网站,并且你对网站的模板如何组合起来有一个很好的想法,那么这不是一个真正的缺点,但对于大型项目,它会妨碍.
如果您的项目已经超出了单个开发人员,或者如果您想在此之前添加设计器,那么PHP可能是一种难以表达演示文稿的语言.专用的模板语言具有优势,因为它们很简单,而且不是给你这么多的绳索,让自己挂起来.
较大的项目,即使它们不需要来自多个开发人员的大量输入,也可以使纯PHP的自由形式有点笨拙.专用模板引擎提供(或强制执行)每个模板如何与其余模板匹配的基本结构.