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 相关文章推荐
提问的智慧(2)
Oct 09 PHP
MySQL相关说明
Jan 15 PHP
php下的权限算法的实现
Apr 28 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
实用PHP会员权限控制实现原理分析
May 29 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
May 08 PHP
php实现使用正则将文本中的网址转换成链接标签
Dec 03 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
php简单备份与还原MySql的方法
May 09 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 PHP
php使用json-schema模块实现json校验示例
Sep 28 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
mysql总结之explain
2012/02/27 PHP
php生成短网址示例
2014/05/05 PHP
php中的ini配置原理详解
2014/10/14 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
Document对象内容集合(比较全)
2010/09/06 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
利用BootStrap弹出二级对话框的简单实现方法
2016/09/21 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
python字符串下标与切片及使用方法
2020/02/13 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
学习python需要有编程基础吗
2020/06/02 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
Farfetch香港官网:汇集全球时尚奢侈品购物平台
2017/11/26 全球购物
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
网络宣传方案
2014/03/15 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
MySql学习笔记之事务隔离级别详解
2021/05/12 MySQL
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers