我应该像Yii一样使用带有MVC的smarty模板引擎吗?

时间:2012-04-20 21:06:15

标签: smarty template-engine yii

我过去使用过smarty,在x-cart,jobberbase和Joomla的jomestate组件以及其他一些Joomla组件中也是如此。我看到X-cart中的东西非常紧密,许多事情似乎比在jobberbase中应该更复杂,我觉得这是因为聪明。

现在我将在客户建议的项目中使用Yii。而Yii本身就是MVC框架。那么我应该使用smarty吗?我想知道我应该使用smarty,我的意思是在Yii中会有一些使用smarty的优点吗?或不?或者它只是一个开销还是会有一些使用smarty的缺点?我理解聪明。但我认为这有时会让事情变得更复杂。所以我想从你们这里知道,由于框架不好或者存在一些现实,这只是一个主导思想,所以我应该使用smarty还是还有其他更好的东西呢?

3 个答案:

答案 0 :(得分:11)

作为在Yii之前曾经使用过smarty的人,我说没有意义。

Smarty很棒,因为它阻止你在一个文件中混合逻辑和视图。 MVC架构定义了控制器(包含逻辑)和视图应该是分开的。我建议您像在smarty模板中一样编写视图,但只需使用php语法。如果您使用的是好的IDE(如netbeans),它会自动缩进您的代码(see code formatting in netbeans)

另请查看Alternative syntax for control structures

Yii创作者的可能意见

Yii本身源自Prado,这是Qiang Xue之前的项目。普拉多有一种诱人的语言和Yii(开箱即用)并不假设这意味着羌认为模板语言是不必要的。

Smarty Overhead

每次更改时,Smarty模板都会被编译一次PHP(如果启用了缓存),这意味着大部分开销只发生在第一个请求中,但我假设额外的函数调用仍然有一些开销检查编译的视图是否存在,这会影响每个请求。因此,智能有一个开销,但它可能是微不足道的。

答案 1 :(得分:2)

与任何模板语言一样,Smarty是一种昂贵的开销。

正如Rasmus Lerdorf所说,PHP已经是一个模板引擎。有没有理由在PHP中已经有其他控件结构添加另一种语言?

模板引擎仅有用,因为它们嵌入了缓存逻辑。如果您无法自己构建缓存逻辑,那么请学习它。

答案 2 :(得分:1)

如果编译成php,Smarty不会有开销。

当开发人员和设计师(想要使用Smarty)有不同的角色时,我只会使用Smarty

除此之外,它只是另一种学习语言。