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+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 PHP
PHP学习之数组的定义和填充
Apr 17 PHP
用PHP实现小写金额转换大写金额的代码(精确到分)
Jan 10 PHP
php使用正则过滤js脚本代码实例
May 10 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
php操作csv文件代码实例汇总
Sep 22 PHP
PHP通过API获取手机号码归属地
May 28 PHP
php正则替换处理HTML页面的方法
Jun 17 PHP
Smarty使用自定义资源的方法
Aug 08 PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 PHP
PHP实现与java 通信的插件使用教程
Aug 11 PHP
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
Apr 16 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 字符串分割和比较
2009/10/06 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
2017/10/26 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
通过npm或yarn自动生成vue组件的方法示例
2019/02/12 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python验证码识别的示例代码
2017/09/21 Python
python实现视频分帧效果
2019/05/31 Python
python 操作mysql数据中fetchone()和fetchall()方式
2020/05/15 Python
Python如何给你的程序做性能测试
2020/07/29 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
C语言基础笔试题
2013/04/27 面试题
介绍一下如何优化MySql
2016/12/20 面试题
应用外语系自荐信
2014/06/26 职场文书
公司奖励通知
2015/04/21 职场文书
2015年测量员工作总结
2015/05/23 职场文书
MySQL中你可能忽略的COLLATION实例详解
2021/05/12 MySQL