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连接MySQL代码的参数说明
Jun 07 PHP
php MYSQL 数据备份类
Jun 19 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
php中使用__autoload()自动加载未定义类的实现代码
Feb 06 PHP
基于PHP array数组的教程详解
Jun 05 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
php时间计算相关问题小结
May 09 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
Jun 02 PHP
阿里云Win2016安装Apache和PHP环境图文教程
Mar 11 PHP
PDO::exec讲解
Jan 28 PHP
laravel5 Eloquent 实现事务方式
Oct 21 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
第四节--构造函数和析构函数
2006/11/16 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
php简单统计在线人数的方法
2016/05/10 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
python获取Linux发行版名称
2019/08/30 Python
Python帮你识破双11的套路
2019/11/11 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
类和结构的区别
2012/08/15 面试题
党的群众教育实践活动实施方案
2014/06/12 职场文书
创新社会管理心得体会
2014/09/12 职场文书
邀请函范文
2015/02/02 职场文书
文言文辞职信
2015/02/28 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server