我从2000年开始使用PHP做为Web应用的脚本语言,数年前接触到smarty以及smarttemplate,
在此过程中,两者都用过不少时间.两下比较后,后来就一直使用smarttemplate,而不是广泛流行的smarty.
其原因不仅仅是smarttemplate较之smarty更轻巧也小得多.
更重要的.是我认为模板所在的显示层,不应该承担起太多的逻辑判断与行为处理.(无可避免,但我认为应该最小化减轻在显示层做这些工作.)
使用模板引擎的目的不外乎二:
一者是使代码尽量和显示结构分离,
二者是能让工作尽量分工,程序员专注于数据,前端设计师专注于页面结构.
从前者的角度来说,如果在模板里夹杂太多运算,逻辑,甚至数据处理的程序内容.无疑是在开历史的倒退车.这样做跟直接在HTML里<?php 有什么区别呢?
从后者的角度来说,也许很多公司没有细分职责.大部份是程序员连程序带切页面一起处理完.所以站在这个角度smarty比之smartemplate就具有不少优势.因为可以一边处理页面代码一边"顺便"就用smarty的语法来完成一些逻辑控制之类的东西.殊不知这样看似方便的背后其实在破坏着一个良好的逻辑控制/显示 分离的结构.造成项目的维护性和扩展性降低.
不过smarttemplate也有一些麻烦的地方,一来是自06年开始就未再更新.
二来是无法引用一些全局变量.页面中所有的变量都得先assign注册,这样会造成诸如放在session中的用户昵称,ID等.为了在每个页面上显示.每次都得assign一次.颇不方便.
smarttemplate的控制功能只提供了IF ELSE BEGIN的基本语法.将对显示层的破坏降低到最大层度.但是IF中可供选择的项太少.
只能是 注册变量 比对 一个固定的值.无法用 注册变量比对注册变量.亦无法使用and or等基本语法.使得灵活程度相对降低.
(即使我们应尽量避免在页面中处理逻辑.但有些地方仍无可避免....:-( )
我对这些做了一些修改.在原有代码基础上增加了{SESSION.uid},{GLOBALS.test}之类的全局变量引用方法.
对IF做了些改写,使IF能支持如 <!-- IF {a}>{b} AND {c}<5 -->的写法.
亦对BEGIN做了略为修改.使之实现类似foreach的功用.
如果有想要的.可以邮件/站内短信给我.提供给大家.
分享到:
相关推荐
对smarttemplate1.2.1 中的文件结构和部分程序代码稍做了一下修改,在IIS或Apache服务器上配置OK后可以直接运行浏览,不用改动任何代码,便于初学者学习研究。 此Demo已在本机测试通过 测试环境:WINDOWS2003+IIS6+...
值得注意的是,Smarty的性能优势部分源自于其后端缓存机制,而这种机制在某些场景下可能并非最优选择,因此两者的性能对比需结合具体应用场景考量。 #### 二、SmartTemplate的变量机制 SmartTemplate的变量管理...
SmartTemplate就是这样一个模板引擎,尤其在PHP开发中广泛应用。它以简洁、高效和灵活为特点,帮助开发者快速...在实际开发中,结合示例代码"smarttemplate",你可以更好地掌握其使用技巧,并将其应用到自己的项目中。
- **扩展性**:通过`smarttemplate_extensions`目录下的扩展,可以增加自定义功能或修改默认行为。 - **缓存机制**:可能支持编译后的PHP代码缓存,减少每次请求时的编译时间。 - **多语言支持**:可能提供多语言...
在开始使用 SmartTemplate 之前,我们需要确保已经将其引入项目中。这可以通过下载库文件或使用 CDN(内容分发网络)链接来实现。一旦引入成功,我们就可以创建模板字符串,这些字符串包含了我们希望动态化的 HTML ...
在V1.2.1版本中,SmartTemplate可能包含了一些新功能或性能优化。版本号的提升通常意味着开发者对原有功能进行了改进,修复了已知问题,或者增加了新的特性。V1.2.1可能引入了更强大的模板定制能力,更好的用户界面...
QuickSkin(以前称为SmartTemplate)是一种PHP模板引擎/编译器,旨在支持大规模的基于Web的应用程序。 (HTML-)模板被转换为PHP代码并非常快速地执行。 http://sourceforge.net/projects/quickskin/
对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步...
基于PHP模块引擎SmartTemplate高校图书管理系统 该高校图书管理系统基于PHP模块引擎SmartTemplate,旨在解决高校图书管理系统中的信息化问题。该系统通过建立一个智能化、系统化、信息化的图书管理系统,旨在提高...
资源名字:基于php+mysql+smarttemplate的图片共享系统设计与实现(源码+文档)_php_mysql图片共享系统.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 适合场景...
当ThinkPHP框架的用户需要使用Smarty作为模板引擎时,可以通过一些特定的配置和修改来实现。 在ThinkPHP使用Smarty作为第三方模板引擎时,首先需要在配置文件中开启插件,并指定模板引擎类型为Smarty。具体操作包括...
`readme.txt`文件通常会提供关于Quickskin的基本介绍、版本信息、更新日志以及作者联系方式等。它是了解软件背景和使用指导的重要文档。 `changelog.txt`记录了Quickskin每次版本更新的内容,包括新功能、改进和...
FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件的传输。FTP上传下载涉及了在...同时,理解和掌握FTP的工作原理以及最佳实践,对于优化内网环境下的文件传输效率和安全性至关重要。
SmartTemplate则是一种模板引擎,它将视图层和逻辑层分离,使得网站设计更加灵活,开发者可以专注于业务逻辑,而设计师则可以独立地修改网站样式。 此外,"access(mdb)”通常指的是Microsoft Access数据库,这是一...
在PHP面试中,常见的一些问题涉及语言的基本概念、最佳实践以及特定功能的使用。以下是对提供的面试题的详细解释: 1. **表单提交GET和POST的区别**: - GET方法将表单数据附加到URL中,以键值对的形式显示在地址...
在这个源码包中,"使用须知.txt"文件很可能是对系统使用的一些基本指导和注意事项,可能包含如何部署、配置环境、数据库连接信息等关键信息。而"132688941380952501"这个文件名看起来不太符合常规,可能是由于某种...