Smarty模板学习笔记之Smarty简介
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:不过为了整个项目的规范,请大家尝试去使用模板引擎。其实习惯了,开发速度会更加快,以上是没有用习惯模板引擎的开发者遇到的问题)
相关推荐
-
smarty半小时快速上手入门教程
本文讲述了smarty快速上手入门的方法,可以让读者在半小时内快速掌握smarty的用法.分享给大家供大家参考.具体实现方法如下: 一.smarty的程序设计部分: 在smarty的模板设计部分我简单的把smarty在模板中的一些常用设置做了简单的介绍,这一节主要来介绍一下如何在smarty中开始我们程序设计.下载Smarty文件放到你们站点中. index.php代码如下: 复制代码 代码如下: <?php /** * * @version $Id: index.php * @package
-
Smarty变量调节器失效的解决办法
Smarty的变量调节器是个不错的东西,一直以来都用着顺手,可昨天使用变量调节器时发现不管用. 复制代码 代码如下: {$name | upper} 仔细看了手册,看了smarty加载路径,上上下下检查了将近一个小时也没有发现问题所在.即将要陷入无奈的困境时,把代码删除了重新写成 复制代码 代码如下: {$name|upper} 结果好了.原来是变量后要直接跟着竖线,函数名,中间不能有空格,否则变量调节器的功能将失效.闹了半天,原来就是一个空格引起的,太不值当了!!! 看来以后调smarty程序
-
ThinkPHP使用smarty模板引擎的方法
ThinkPHP支持多种php模板引擎,可以根据个人需要加以配置. 下面我们以Smarty模板引擎为例,给大家说说具体的操作流程! 首先去Smarty官网上下载一个Smarty.本站下载地址:http://www.jb51.net/codes/16086.html. 接下来解压压缩包,会有两个文件夹:demo和libs.打开libs文件夹,复制所有内容. 接下来,打开你网站根目录 下thinkphp的文件夹.里面有个vendor文件夹,这个文件夹是TP调用第三方类库用的,把刚才复制的东西全部粘贴
-
模板引擎smarty工作原理以及使用示例
模板引擎是用于把模板文件和数据内容合并在一起的程序,便于网站开发有利于代码分离和维护,了解一个模板最好知道其工作原理,以便于实现一通万通. 模板文件一般是HTML xml js等类型文件,如果不用模板引擎若要把数据显示在网页上,我们需要在php中输出HTML,而使用模板则只要把数据交给模板引擎程序即可,然后告诉它用哪个模板文件,自然就会把数据和页面结合以后返回或输出,模板至少有以下功能1.把数据提供给模板引擎的功能.2.指定模板的功能.3.输出结果的功能.一般来说为了方便程序员们使用模板引擎,开
-
sae使用smarty模板的方法
Smarty是非常流行的模板系统,它分离了业务和逻辑.执行速度快,在php网站中有广泛的运用. 不过在部署到sina app engine(sae)上时出现了问题,因为sae作为云计算平台式无法进行文件读写操作的,所以Smarty中输出的缓存文件就无法实现. 错误信息:"SAE_Fatal_error: Uncaught exception 'SmartyException' with message 'unable to write file ./web/templates_c/wrt4e95
-
smarty获得当前url的方法分享
http://{$smarty.server.SERVER_NAME}/{$smarty.server.REQUEST_URI} 注释: 复制代码 代码如下: {$smarty.server.SERVER_NAME}//表示:服务器名称{$smarty.server.REQUEST_URI}// 表示:请求的url 例如:http://www.jb51.net/sysaction/getUserInfo.php 复制代码 代码如下: {$smarty.server.SERVER_NAME} //
-
smarty模板中拼接字符串的方法
PHP页面传到Smarty模板上的变量(这里用,在Smarty上创建两个变量代替) 复制代码 代码如下: {assign var="name" value='Richard.Lee'}{assign var="age" value='27'} 1.想要在Smarty模板的某个位置输出(Richard.Lee---27)拼接方法:{$name|cat:"---"|cat:$age}解释:将变量$name."---".$age 拼
-
php smarty模板引擎的6个小技巧
下面本文将以具体的例子一一分析: capture标签 capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的.如下例子: 复制代码 代码如下: {capture name="test"} <img src="testimg.jpg"> {/capture} <div class="image"> {$smarty.capture.test} </div>
-
php之Smarty模板使用方法示例详解
本文详细剖析了smarty模板的使用方法,对于学习smarty的朋友有一定的参考价值.详情如下: 一.模板中的注释 每一个Smarty模板文件,都是通过Web前台语言(xhtml,css和javascript等)结合Smarty引擎的语法开发的. 用到的web前台开发的语言和原来的完全一样,注释也没有变化. Smarty注释语法是'左结束符变量值*'和'*右结束符变量值',在这两个定界符之间的内容都是注释内容,可以包含一行或多行,并且用户浏览网页查看原代码时不会看到注释,它只是模板内在的注释,以
-
Smarty局部缓存的几种方法简介
很多时候我们在用smarty时,并不希望缓存整个页面,例如天气.股票等这类即时更新的信息.那么我们可以让其不缓存,常见的实现有如下3种方法: 1.insert 法: Insert 函数类似于 inluce 函数,不同之处是 insert 所包含的内容不会被缓存,每次调用该模板都会重新执行该函数.比如说我们定义一个显示时间的函数: 复制代码 代码如下: function insert_get_current_time() {return date("H:i:s");} //然后在模板中:
-
smarty简单分页的实现方法
本文实例讲述了smarty简单分页的实现方法,分享给大家供大家参考.具体实现方法如下: 以下是模板中的smarty代码,用smarty简单的代入相关的变量就行了,非常简单,但是在php代码中还要传入page这个参数.我觉得这样分挺好,非常简单.我越来越喜欢用smarty了. Php代码如下: 复制代码 代码如下: {if $pageCount > 1} {foreach item=i from=$pagerList} {if $pageNum eq $i} {$i}
随机推荐
- Zabbix监控Linux主机设置方法
- 浅析Nginx配置文件中的变量的编写使用
- android中UIColletionView瀑布流布局实现思路以及封装的实现
- Python标准库之循环器(itertools)介绍
- MySQL 数据类型 大全
- Mysql全文搜索match against的用法
- 我已装了Mysql但,安装DZ论坛时,为什么提示没有安装Mysql?
- 微信小程序 获取二维码实例详解
- android文字描边功能的实现
- C语言 动态内存分配的详解及实例
- Java使用条件语句和循环结构确定控制流(实例)
- 深入解析Java中的数据类型与变量
- 使用户点击后退按钮使效三行代码
- 在SAE上搭建最新wordpress的方法
- 解决android有的手机拍照后上传图片被旋转的问题
- 10个微妙的Java编码最佳实践
- NodeJs form-data格式传输文件的方法
- inotify+rsync实现实时同步的方法
- 旺旺在线客服代码 旺旺客服代码生成器
- Java String创建对象实例解析