Smarty和Zend有什么区别?

时间:2010-05-30 20:38:24

标签: php frameworks smarty

我遇到了Smarty这是一个模板引擎。但也有Zend,CakePHP框架。 Smarty像Zend,还是完全不同? Smarty只是将逻辑与显示区分开来 - 这类似于像Zend这样的框架吗?

5 个答案:

答案 0 :(得分:12)

Smarty是一个模板引擎,而Zend是一个完整的php框架。

<强> Smarty的

Smarty是一个用PHP编写的网页模板系统。 Smarty主要被推广为分离关注点的工具,这是某种应用的常见设计策略。[1] [2]

  

Smarty通过网站生成网页内容   放置特殊的Smarty标签   在文件中。这些标签是   处理和替换其他   代码。

     

标签是Smarty的指令   由模板分隔符括起来。   这些指令可以是变量,   用美元符号($)表示,   函数,逻辑或循环语句。   Smarty允许PHP程序员使用   定义可以的自定义函数   使用Smarty标签访问。

     

Smarty旨在简化   划分,允许   呈现要更改的网页   与后端分开。理想的情况下,   这减轻了成本和努力   与软件维护相关。   在此成功应用   发展战略,设计师   屏蔽了后端编码,以及   PHP程序员被屏蔽了   演示文稿编码。

<强>的Zend

ZF是一种随意使用的框架。尽管ZF确实为MVC,表数据网关和行数据网关设计模式提供了组件,但Zend Framework用户不必遵循单一的开发范例或模式。 Zend Framework为Web应用程序开发中的许多其他常见需求提供了单独的组件。[1]

Zend Framework还致力于在PHP社区中推广Web开发最佳实践; ZF中的约定并不像许多其他框架那样常用,而是通过设置可以为每个ZF应用程序的特定要求覆盖的合理默认值来提出建议。[4]

答案 1 :(得分:3)

模板引擎 Smarty )只是提供了一种将显示与实际代码分开的方法。

框架 Zend CakePHP Drupal 等)基本上提供了PHP之上的语言扩展。然后,您可以使用此“语言”来编写您的网站。它为您提供了轻松实现更复杂任务的方法(至少更是如此)。它通常有助于数据库访问,安全性,i18n/l10n,缓存,模板等等。

答案 2 :(得分:2)

Zend是一个开源的Web应用程序框架。

Smarty是一个网络模板系统。

检查ZendSmarty

答案 3 :(得分:1)

Zend是PHP语言的JIT实现。它处理所有PHP代码并将其编译为机器代码以供执行。缓存框架(如APC)提供操作码缓存以提高性能。

Smarty是一种用PHP实现的模板语言。它将业务逻辑和表示分开。

Zend - &gt; PHP - &gt; Smarty - &gt;您的网站

答案 4 :(得分:0)

你在混合那些概念。

模板引擎不会将逻辑与显示分开,但它是实现这一目标的一种方法。

另一方面,框架是一种抽象,其中提供通用功能的公共代码可以被提供特定功能的用户代码选择性地覆盖或专门化[维基百科]。一些框架,包括Zend框架,提供了MVC(模型视图控制器)架构模式的实现,使得直接隔离持久性,逻辑和表示层。