smarty小总结

PHP模版引擎smarty

1、           什么是模版引擎,按照我的理解就是,把前端和后台分开的东西,写一个前端的模版,然后里面需要动态内容的地方,直接用一些简单的规定出来,然后再写一个脚本,指定那个模版的变量的值。

2、           我们直接说smarty的配置吧,先去下载一个smaty包,然后解压,你就会看到很多文件,其中只有一个名称叫libs的文件夹有用,这个地方存的有smarty类库,首先你要在你的一个项目里用smarty的话,直接把这个libs复制到你的项目的主文件下

3、           然互你要使用smarty的类话,你就是后续爱你要把他包含进来,require ‘./libs/Smarty.class.php’;(注意一点你的Smarty,S要大写),然后实例这个对象。Smarty里有很多需要关注的成员属性,你可以在一个脚本里包含包括smarty的包含,实例,以及设置这些属性。

4、           命名一个文件 init.ini.php  代码 :

<?php

Define(“ROOT’,str_replace(“\\”,”/”,dirname(__FILE__)).”/”);//指定项目的根路径

Require ROOT.”libs/Smarty.class.php”;

$smarty=new Smarty();

$smarty->setTemplateDir(ROOT.”templates/”)

      //->addTemplateDir(ROOT.”templates2/”)

      ->setComplileDir(ROOT.”templates_c/”)

     ->setPliginsDir(ROOT.”plugins/”)

    ->setCacheDir(ROOT.’cache/’)

    ->setConfigDir(ROOT.’configs’);

$smarty->caching=false;

$smarty->cache_lifetime=60*60*24;

$smarty->left_delimiter=’<{’;

$smarty->right_delimiter=’}>’;

?> 然后在需要他的时候包含来就可以了

5、           先来一个简单的smarty 示例吧

模版文件:

<html><head>

<meta http-equiv=”content-type”content=”text/html;charset=utf-8”>

<title><{$title}</title>

<head>

<body>

<{$content}>

</body>

</html>把这个文件命名为test.html 然后在项目的煮目录里创建index.php

<?php

 Require ‘init.ini.php”;

$smarty->assign(“title”,”模版用的网页标题”);

$smarty->assign(“content”,”测试用的网页内容”);

$smarty->display(“test.html”);

?>

看到输出结果以后,然后你在templates_c下,就会看到相应的编译的文

6、           上面自己生成的编译后的文件,下次再去访问那个脚本时,只要内容没发生变化,Smarty就会抓去编译后的文件去执行了,但是这个编译后的文件任然是一个脚本,还是概要执行数据库连接内容的还是要执行,并不是一个纯静态网页。

7、           我们做后台的不太需要搞清楚太多的smarty的前端知识,直接讲smarty的控制缓存吧。

首先你的$smarty->caching=true 或者1 ,false是关闭缓存嘛。(0是永远生成缓存,这个只是个别测试的时候用的较多)然后用$smarty->setCacheDir(“./cache”);然后你有必要把你的缓存设置一个生命周期啊,用$smarty->cache_lifetime=60*60*24*7设置缓存周期为一周,后面也正常的display(”index.html”);即可。

8、           每个模版设置多个缓存,这很简单,直接在$smarty->display(“test.html”,$_GET[‘id’]));,反正display后的第二个参数要有,而且要唯一即可。

9、           为缓存实例消除处理开销代码如下   <?php

                                       $smarty->caching=true;

                                        If(!smarty->isCached(“index.html”)){

  调用数据库,并对变量进行赋值,消除了处理数据库的开销

}

$smarty->display(“index.html”);

  如果一个模版有多个缓存实例,就在isCached()和display()函数第二个参数设置一个就好了

<?php

                                       $smarty->caching=true;

                                        If(!smarty->isCached(“index.html”,$_GET[‘id’])){

  调用数据库,并对变量进行赋值,消除了处理数据库的开销

}

$smarty->display(“index.html”,$_GET[‘id’]);

?>

10、       清除缓存

<?php

require 'ini.inc.php';

$smarty->clearCache("test.html",3);

?>

上面这个代码写的就是清除一个模版多个缓存

还有几个形式:

$smarty->clearAllCache();清除所有缓存

$smarty->clearCache(“index.html”);清除一个缓存

$smarty0>clearCache(“index.html”,”cacheid”)清除一个模版的一个缓存

11、       局部缓存

<{nocache}> <{$aa}> <{/nocache}>就是把不要缓存的东西放在   <{nocache}>

……<{/nocahe}>里,而且在脚本文件了,不需要缓存的东西要放在iscache() 判断外
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值