Smarty模板学习笔记之Smarty简介


Posted in PHP onMay 20, 2014

1、简介

Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端分离,使PHP程序员改变程序的逻辑内容不会影响到前端的页面设计,前端重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

2、那么smarty有什么优点呢?

a、速度:采用Smarty编写的程序可以获得最大速度的提高,这一点是相对于其它的模板引擎技术而言的。

b、编译型:采用Smarty编写的程序在运行时要编译成一个非模板技术的PHP文件,这个文件采用了PHP与HTML混合的方式,在下一次访问模板时将WEB请求直接转换到这个文件中,而不再进行模板重新编译(在源程序没有改动的情况下)

c、缓存技术:Smarty选用的一种缓存技术,它可以将用户最终看到的HTML文件缓存成一个静态的HTML页,当设定Smarty的cache属性为true时,在Smarty设定的cachetime期内将用户的WEB请求直接转换到这个静态的HTML文件中来,这相当于调用一个静态的HTML文件。

d、插件技术:Smarty可以自定义插件。插件实际就是一些自定义的函数。

e、模板中可以使用if/elseif/else/endif。在模板文件使用判断语句可以非常方便的对模板进行格式重排。

3、不过,在下面情况时使用smarty需留意

a、需要实时更新的内容。例如像股票显示,它需要经常对数据进行更新,这类型的程序使用smarty会使模板处理速度变慢。

b、小项目。小项目因为项目简单而美工与程序员兼于一人的项目,使用Smarty会在一定程度上丧失PHP开发迅速的优点。

(PS:不过为了整个项目的规范,请大家尝试去使用模板引擎。其实习惯了,开发速度会更加快,以上是没有用习惯模板引擎的开发者遇到的问题)

PHP 相关文章推荐
php 删除记录实现代码
Mar 12 PHP
PHP iconv 函数转gb2312的bug解决方法
Oct 11 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
yii上传文件或图片实例
Apr 01 PHP
ThinkPHP之R方法实例详解
Jun 20 PHP
php遍历类中包含的所有元素的方法
May 12 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
实现PHP搜索加分页
Oct 12 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 PHP
php实例分享之mysql数据备份
May 19 #PHP
dedecms函数分享之获取某一栏目所有子栏目
May 19 #PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 #PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 #PHP
php开启openssl的方法
May 15 #PHP
PHP整数取余返回负数的相关解决方法
May 15 #PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 #PHP
You might like
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
一个简单的js动画效果代码
2010/07/20 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
jquery实现更改表格行顺序示例
2014/04/30 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
js判断节假日实例代码
2017/12/27 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
浅析Python函数式编程
2018/10/06 Python
python远程连接MySQL数据库
2019/04/19 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
三星印度官网:Samsung印度
2019/08/03 全球购物
标准化管理实施方案
2014/02/25 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
使用Python开发冰球小游戏
2022/04/30 Python