将Smarty与Zend集成有什么好处?

时间:2010-04-11 13:07:46

标签: php zend-framework smarty

我对Smarty非常熟悉,最近决定在实现中使用Zend框架。

因为我知道Smarty的各种优点,所以我坚持让我的承包商将Smarty整合进来。

但现在,我在质疑我的假设。

我应该将Smarty与Zend框架集成吗?仅仅因为我熟悉Smarty语法?

我也参与了编程。我让承包商帮助建筑和原型。

4 个答案:

答案 0 :(得分:4)

几年前,我们正在使用Smarty,对于非开发人员(或者至少不是PHP开发人员)来说,更容易 在他们的HTML布局中整合他们想要的东西。

问题是:他们不必学习PHP的基础知识,而是必须学习Smarty - 如果我补充的话,很多人都不会那么好。


现在,Smarty已经很老了,没有很好的维护,也没有任何东西...... Zend Framework希望人们在他们的观点中使用PHP ......

在项目视图中使用Smarty,基于ZF,意味着:

  • 开发人员必须学习Smarty - 而不仅仅是PHP + HTML
    • 即使你认识Smarty,你的承包商是否也能很好地使用它?
    • 那么你的同事或将来雇用的人呢?
  • 将其与ZF集成的问题:即使您可以在模板中使用Smarty,是否可以使用全功率或ZF?插入,帮助,部分,以及所有这些?


我们许多人之所以说“使用smarty ”的另外一个原因,就是过去帮助分离内容和表达;但是,由于您已经在基于ZF的应用程序中使用MVC,因此无需聪明地执行此操作:如果您遵循ZF的指导原则,即使不使用Smarty,您也已经将它们分开了。


好吧,最后,我宁愿不使用Smarty:

  • 它陈旧且维护不善
  • 它在基于ZF(使用MVC)的项目中并不实用
  • 可能很难集成到您的项目中。

答案 1 :(得分:1)

我想说这些应该是两个不同的问题:

  1. 我应该使用模板引擎还是PHP作为模板引擎?

    模板引擎的一般用途是将视图层与其余视图层分开。

    Smarty实现了V层 MVC。但Zend Framework已经拥有它 实施得很好。所以你不要添加 没什么新鲜的。有过滤器, 像Smarty一样的助手。如果你不这样做 想要混合HTML和PHP,你 可以将V分成两部分并使用标记 Texitle 用于视图模板。

    以下是关于是否使用模板引擎的争论: http://fabien.potencier.org/article/34/templating-engines-in-php

  2. 如果我想使用PHP模板引擎,现在有没有比Smarty更好的解决方案?

    是的,例如。 PHPTAL,也可轻松集成到ZF中。

  3. 其余的取决于你。如果您习惯使用Smarty,或者项目规范需要Smarty(例如,为了向后兼容),那么在ZF中使用它是没有问题的。

答案 2 :(得分:0)

我确实在我的旧项目和现在的一些项目中使用了smarty。我也尝试将它与zend集成。但正如先生pascal martin所说,zend已经很好地处理了视图层。虽然我能够将它与zend集成,但我遇到了以下问题:

  • Zend_Form与smarty的整合成为一个问题。
  • 视图帮助器和局部视图变得有点复杂。
  • 聪明的学习曲线
  • 资源(tpl等)位置

另外,最后,我坚持使用zend默认视图

答案 3 :(得分:0)

作为一名前端开发人员,我经常与smarty合作,并发现额外的修饰符和插件为我节省了大量时间:

Varialbe Modifiers Built in PLugins

Smarty也有自己的缓存,可以将smarty标记缓存到本机PHP中。因此使用缓存模板进行额外处理没有问题。

Smarty 3最近已更新,并已得到改进。