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 中文处理函数集合
Aug 27 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
php+mysql数据库查询实例
Jan 21 PHP
php查看当前Session的ID实例
Mar 16 PHP
php批量删除超链接的实现方法
Oct 19 PHP
简单了解PHP编程中数组的指针的使用
Nov 30 PHP
PHP会员找回密码功能的简单实现
Sep 05 PHP
php中bind_param()函数用法分析
Mar 28 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 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
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
Python返回数组/List长度的实例
2018/06/23 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
Java里面有没有全局变量?为什么?
2015/02/06 面试题
信息系统专业个人求职信范文
2013/12/07 职场文书
项目经理任命书范本
2014/06/05 职场文书
走进敬老院活动总结
2014/07/10 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers