当前位置: 首页 > 后端技术 > PHP

Smarty(一)

时间:2023-03-29 23:56:19 PHP

1.Smarty的由来Smarty的主要设计理念是:将显示逻辑和程序代码清晰地分开。PHP做后端时,在前端应用Smarty模板,增强PHP的前后端交互性能。并且在前后端分离的情况下,给程序员的开发部署带来了方便。语法简单易懂。即使你不懂PHP,你也可以完全掌握Smarty。有人会说,为什么不直接用PHP做前台渲染呢?PHP与模板语法分离的重要性:模板语法通常更符合HTML标记的语义。PHP语法在程序代码中可以很好地工作,但在HTML中如何混用就不行了。Smarty简单的{label}语法是为表达显示逻辑而设计的。Smarty让你的模板更专注于页面展示,而不需要太多的“代码”。这允许更快的模板开发和更容易的维护。学习Smarty的语法不需要PHP知识,程序员或非程序员都可以快速上手。松耦合:PHP代码混合在模板中时,将无法约束任意逻辑代码写在模板上。Smarty将模板和PHP分离,控制页面展示和业务逻辑的分离。Smarty还具有对模板源代码实施约束的安全功能。页面设计者和PHP之间的一个共同问题是:“既然页面设计者想学一种语法,为什么不学PHP呢?”。页面设计者当然可以学习PHP,而且他们可能已经非常熟悉PHP了。问题不在于他们是否有能力学习PHP。问题是HTML与PHP混合在一起。如果设计者使用PHP,很容易将一些不属于模板的PHP代码写到模板中。(就像他们只需要一把小刀,而你却给他们一把瑞士军刀一样)。您可以教他们编程规则,但这可能是他们真正不需要学习的东西(他们不是开发人员)。而且PHP手册太多了,很难选择你需要教的部分,就像你在汽车厂里给买车人的是装配手册,而不是汽车的操作手册。Smarty恰到好处地为设计人员提供了他们需要的工具,并为开发人员提供了一种更好地控制这些工具的方法。这种简单的标签语法也很受设计师欢迎,帮助设计师以流线型的方式组织和管理模板。2.一句话说什么是Smarty:Smarty是PHP的一个模板引擎。更准确的说:Smarty可以更好的帮助开发者分离程序逻辑和页面展示。比如在前后端分离的项目中,前后端是针对不同人员开发的,那么Smarty就可以完美的实现前后端协同,互不影响。而业务逻辑和展示逻辑的分离是Smarty的一个设计理念。其次,Smart的一些功能非常快。它比将PHP嵌入到HTML中要高效得多。它比将PHP嵌入到HTML中要高效得多。没有模板解析开销,只编译一次。仅在修改模板文件时智能地重新编译。您可以轻松创建自己的函数和变量装饰器,非常可扩展。可配置模板分隔符语法{delimiter},可以使用{$foo}、{{$foo}}、等条件判断语句{if}..{elseif}..{else}..{/if}会被PHP直接解析,所以{if...}后面可以跟简单或复杂的表达式。支持sections的无限嵌套,if等。内置缓存支持。任意模板源。模板继承使得管理模板和内容变得容易。3.Smarty是如何工作的?在幕后,Smarty将模板“编译”(简单地复制和转换)为PHP代码。这发生在第一次调用每个模板时,然后永远使用编译后的代码。Smarty很好地处理了这一点,因此模板设计者只需编辑模板而无需担心编译。这种方式保持了模板的易维护性,同时保证运行时以PHP代码的形式运行,从而使PHP代码可以通过APC等OP-CODE缓冲区进行加速。第四,Smarty不是什么Smarty不是一个应用程序开发框架。Smarty不是MVC。Smarty不同于ZendFramework、CodeIgniter、PHPCake或其他PHP应用程序开发框架。Smarty是一个模板引擎,作为应用程序中V层(视图层)的一个组件。Smarty可以轻松连接到其他视图引擎。与任何其他软件技术一样,Smarty也有一个学习曲线。Smarty并不一定能保证好的程序设计或达到显示分离的目的,这需要开发者和模板设计者的努力。