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调用Java对象的方法
Oct 09 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 PHP
PHP使用SOAP调用.net的WebService数据
Nov 12 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
[原创]php逐行读取txt文件写入数组的方法
Jul 02 PHP
PHP浮点比较大小的方法
Feb 14 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
Jun 13 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
May 12 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
PHP统计二维数组元素个数的方法
2013/11/12 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
javascript检测浏览器的缩放状态实现代码
2014/09/28 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
Vue自定义指令详解
2017/07/28 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python学习小技巧之列表项的拼接
2017/05/20 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
pandas中的series数据类型详解
2019/07/06 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
用python批量下载apk
2020/12/29 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
2014年个人业务工作总结
2014/11/17 职场文书
欢送领导祝酒词
2015/08/12 职场文书
关于销售人员的年终工作总结要点
2019/08/15 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis
Django drf请求模块源码解析
2021/06/08 Python