|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在学习PHP这六个月里,每看到一个优秀的php脚本,就会兴奋的手舞足蹈,嘴里还不停的说:太酷了,太酷了。呵呵,很幼稚吧,但这可能就是兴趣。 人人应当晓得缓存机制能能无效的加重网站的办事器压力,Smarty模板引擎的一大亮点就是为咱们供应了十分复杂的缓存操作,上面就让咱们进修一下。
起首咱们要晓得Smarty缓存机制分为全局缓存,局部缓存,部分缓存三种,咱们逐一引见。
1、全局缓存
望文生义,全局缓存就是为全部网站的全体页面都生成缓存页面。
起首咱们要操作smarty的设置装备摆设文件,开启缓存,指定缓存文件目次,并设置缓存的存活工夫
$smarty->cache_dir = ‘./cache/’; //设置寄存缓存文件的文件夹
$smarty->caching = 1;//开启缓存 0、FALSE代表封闭非0数字、TRUE代表开启
$smarty->cache_lifetime = 3600//单元为秒(假如填写-1为永不外期)
接上去咱们要去详细的php页面设置与之对应的详细缓存文件的名字
$url=md5($_SERVER['REQUEST_URI']);//将以后页面的URL(包括?前面的一切参数)停止md5加密
$smarty->display(‘list2.html’,$url);//设置缓存文件名
需求注重的是:
$smarty->display(‘与之对应的模板文件名’,'缓存文件名的增补局部’)这个办法。
第二个参数不是必需的,假如不写的话,缓存文件名就是讲过加密处置的模板文件名。
然而如许会碰着一个对照辣手的成绩:
http://localhost/1.10/sm/list2.php?lan=1
http://localhost/1.10/sm/list2.php?lan=2
http://localhost/1.10/sm/list2.php?lan=3
3个URL对应应当的分歧的内容,然而生成的缓存文件名都是list2.html加密后的了局。
这就会招致用户想要查询的是分歧的内容,会见的倒是统一个缓存文件。
所以建议加上一个帮助参数,将会见url(包括?前面的一切参数)md5加密是作者对照保举的一种。
2、局部缓存
起首懂得甚么叫局部缓存,其实就是指定一些文件生成缓存文件,而非网站的全体文件。
懂得了需求到达的后果,接上去咱们就来详细操作
操作之前,咱们先要强调一个概念:
局部缓存的本色实际上是局部不缓存,也就是说不是指定那些文件生成缓存,而是指定详细一些文件不生成缓存
假定有3个文件:
1.php //需求缓存
2.php //需求缓存
3.php //不需求缓存
在1.php/2.php文件中仍是还是写上$smarty->display(‘与之对应的模板文件名’,’缓存文件名的增补局部’)这个办法。
但在3.php中咱们要出格指明不需求生成缓存,详细的办法是:
$smarty->clear_cache(‘与之对应的模板文件名’)//写在$smarty->display(‘与之对应的模板文件名’)之前仍是以后都可以
固然$smarty->display(‘与之对应的模板文件名’)仍是要写,原本就不想生成缓存,第二个参数也就不需求了。
$smarty->clear_cache()和$smarty->display()的参数必定要写成分歧的
3、部分缓存
起首让咱们懂得下部分缓存的意思,就是指定统一页面下的某些部分中央生成缓存。
一样的在这里咱们也要把思绪反转一下。
其实不是指定哪些部分生成缓存,而是哪些部分不生成缓存(这和局部缓存的操作思惟是相似的)。
话不多说,先举一个实例
1.php
$time=time();
$smarty->assign(‘time’,$lanmuarr);
function insert_timeget()
{
return time();
}
$smarty->display(’1.html’);
1.html
{$time}
//开启缓存后,反复刷新这个不会变
{insert name=’timeget’}
//开启缓存后,反复刷新这个会变
看懂了这个例子咱们来注释下个中的道理
在PHP中咱们只需界说了
函数名为insert_自界说增补名的自界说函数,在个中前往的值,不需求assign()办法传递,就可以直接在模板页面中以{insert name=’自界说增补名’}的体例挪用,同时不会遭到缓存的影响,而及时刷新
好了到这里咱们关于smarty的3中缓存体例就全体解说完了,有乐趣的伴侣可以本人实验下分歧的后果。
那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢? |
|