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中的CMS的涵义
Mar 11 PHP
使用NetBeans + Xdebug调试PHP程序的方法
Apr 12 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
Jul 04 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
Oct 15 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
浅析php学习的路线图
Jul 10 PHP
PHP清除数组中所有字符串两端空格的方法
Oct 20 PHP
php关闭warning问题的解决方法
May 17 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
Sep 29 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 foreach 使用&(与运算符)引用赋值要注意的问题
2010/02/16 PHP
PHP用mysql数据库存储session的代码
2010/03/05 PHP
php适配器模式介绍
2012/08/14 PHP
php检查字符串中是否有外链的方法
2015/07/29 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
Vue.js 十五分钟入门图文教程
2018/09/12 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
通过Python实现自动填写调查问卷
2017/09/06 Python
使用Python处理Excel表格的简单方法
2018/06/07 Python
python实现控制COM口的示例
2019/07/03 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
pandas按条件筛选数据的实现
2021/02/20 Python
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
汇科协同Java笔试题
2012/03/31 面试题
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
清华大学自主招生自荐信
2014/01/29 职场文书
药品促销活动方案
2014/02/14 职场文书
协议书与合同的区别
2014/04/18 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
使用Redis做预定库存缓存功能
2022/04/02 Redis