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 相关文章推荐
一个颜色轮换的简单例子
Oct 09 PHP
收集的DedeCMS一些使用经验
Mar 17 PHP
Gregarius中文日期格式问题解决办法
Apr 22 PHP
php中通过curl模拟登陆discuz论坛的实现代码
Feb 16 PHP
php cc攻击代码与防范方法
Oct 18 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
spl_autoload_register与autoload的区别详解
Jun 03 PHP
php构造函数实例讲解
Nov 13 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
Symfony核心类概述
Mar 17 PHP
PHP实现大数(浮点数)取余的方法
Feb 18 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
php 中文和编码判断代码
2010/05/16 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
Laravel 模型关联基础教程详解
2019/09/17 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
jquery模拟按下回车实现代码
2011/09/20 Javascript
javascript实现跳转菜单的具体方法
2013/07/05 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
python迭代器与生成器详解
2016/03/10 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
Python如何发布程序的详细教程
2018/10/09 Python
python使用turtle绘制国际象棋棋盘
2019/05/23 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
对Django外键关系的描述
2019/07/26 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
简单的Python调度器Schedule详解
2019/08/30 Python
快速查找Python安装路径方法
2020/02/06 Python
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
环保专项行动方案
2014/05/12 职场文书
劳动模范获奖感言
2015/07/31 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书