首页 > php教程 > php手册 > 再次研究下cache_lite

再次研究下cache_lite

WBOY
发布: 2016-06-13 12:33:17
原创
996 人浏览过

晚上详细的看了下cache_lite,功能比我想象中的强大的多。当然目前我还没有发现它是否支持直接保存PHP代码来缓存的功能,不过我想应该是可以扩展实现的。

 这里有几个例子:

<span style="COLOR: #000000"><br><span style="COLOR: #0000bb"> <br></span><span style="COLOR: #007700">require_once(</span><span style="COLOR: #dd0000">'../libs/cache/Lite.php'</span><span style="COLOR: #007700">); <br><br></span><span style="COLOR: #0000bb">$options </span><span style="COLOR: #007700">= array( <br>    </span><span style="COLOR: #dd0000">'cacheDir' </span><span style="COLOR: #007700">=> </span><span style="COLOR: #dd0000">'../cache/test/'</span><span style="COLOR: #007700">, <br>    </span><span style="COLOR: #dd0000">'fileLocking' </span><span style="COLOR: #007700">=></span><span style="COLOR: #0000bb">true</span><span style="COLOR: #007700">, <br>    </span><span style="COLOR: #dd0000">'writeControl'</span><span style="COLOR: #007700">=></span><span style="COLOR: #0000bb">true</span><span style="COLOR: #007700">, <br>    </span><span style="COLOR: #dd0000">'readControl'</span><span style="COLOR: #007700">=></span><span style="COLOR: #0000bb">false</span><span style="COLOR: #007700">, <br>    </span><span style="COLOR: #dd0000">'fileNameProtection'</span><span style="COLOR: #007700">=></span><span style="COLOR: #0000bb">false</span><span style="COLOR: #007700">,</span><span style="COLOR: #ff8000">//关闭文件名安全模式。cache id和组名将直接应用到 cache文件的文件名,所以要小心使用特殊字符. <br>    </span><span style="COLOR: #dd0000">'automaticSerialization'</span><span style="COLOR: #007700">=></span><span style="COLOR: #0000bb">false</span><span style="COLOR: #007700">,</span><span style="COLOR: #ff8000">//关闭自动序列 <br>    </span><span style="COLOR: #dd0000">'hashedDirectoryLevel'</span><span style="COLOR: #007700">=></span><span style="COLOR: #0000bb">2</span><span style="COLOR: #007700">,</span><span style="COLOR: #ff8000">//设置两级缓存路径 <br>    </span><span style="COLOR: #dd0000">'lifeTime' </span><span style="COLOR: #007700">=> </span><span style="COLOR: #0000bb">60 <br></span><span style="COLOR: #007700">); <br></span><span style="COLOR: #0000bb">$Cache </span><span style="COLOR: #007700">= new </span><span style="COLOR: #0000bb">Cache_Lite</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$options</span><span style="COLOR: #007700">); <br></span><span style="COLOR: #0000bb">$id</span><span style="COLOR: #007700">=</span><span style="COLOR: #dd0000">'test'</span><span style="COLOR: #007700">; <br>if(</span><span style="COLOR: #0000bb">$data</span><span style="COLOR: #007700">=</span><span style="COLOR: #0000bb">$Cache</span><span style="COLOR: #007700">-></span><span style="COLOR: #0000bb">get</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$id</span><span style="COLOR: #007700">,</span><span style="COLOR: #dd0000">'test'</span><span style="COLOR: #007700">)){ <br>   echo </span><span style="COLOR: #0000bb">$data</span><span style="COLOR: #007700">; <br>}else{ <br>   </span><span style="COLOR: #0000bb">$data</span><span style="COLOR: #007700">=</span><span style="COLOR: #0000bb">time</span><span style="COLOR: #007700">(); <br>   </span><span style="COLOR: #0000bb">$Cache</span><span style="COLOR: #007700">-></span><span style="COLOR: #0000bb">save</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$data</span><span style="COLOR: #007700">); <br>   echo </span><span style="COLOR: #0000bb">$data</span><span style="COLOR: #007700">; <br>} <br></span><span style="COLOR: #0000bb">?> <br></span></span>


  对输出进行缓存
<span style="COLOR: #000000"><br><span style="COLOR: #0000bb"> <br></span><span style="COLOR: #007700">require_once(</span><span style="COLOR: #dd0000">'../libs/cache/Lite.php'</span><span style="COLOR: #007700">); <br>require_once(</span><span style="COLOR: #dd0000">'../libs/cache/Lite/output.php'</span><span style="COLOR: #007700">); <br></span><span style="COLOR: #0000bb">$options </span><span style="COLOR: #007700">= array( <br>    </span><span style="COLOR: #dd0000">'cacheDir' </span><span style="COLOR: #007700">=> </span><span style="COLOR: #dd0000">'../cache/test/'</span><span style="COLOR: #007700">, <br>    </span><span style="COLOR: #dd0000">'lifeTime' </span><span style="COLOR: #007700">=> </span><span style="COLOR: #0000bb">60</span><span style="COLOR: #007700">, <br>    </span><span style="COLOR: #dd0000">'pearErrorMode' </span><span style="COLOR: #007700">=> </span><span style="COLOR: #0000bb">CACHE_LITE_ERROR_DIE <br></span><span style="COLOR: #007700">); <br></span><span style="COLOR: #0000bb">$cache </span><span style="COLOR: #007700">=new </span><span style="COLOR: #0000bb">Cache_Lite_Output</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$options</span><span style="COLOR: #007700">); <br><br>if (!(</span><span style="COLOR: #0000bb">$cache</span><span style="COLOR: #007700">-></span><span style="COLOR: #0000bb">start</span><span style="COLOR: #007700">(</span><span style="COLOR: #dd0000">'id_of_the_page'</span><span style="COLOR: #007700">))) {  <br>    </span><span style="COLOR: #ff8000">// 没有发现Cache ! <br>    </span><span style="COLOR: #007700">echo </span><span style="COLOR: #dd0000">'test time:'</span><span style="COLOR: #007700">.</span><span style="COLOR: #0000bb">time</span><span style="COLOR: #007700">().</span><span style="COLOR: #dd0000">'<br>test<br>'</span><span style="COLOR: #007700">; <br>    </span><span style="COLOR: #0000bb">$cache</span><span style="COLOR: #007700">-></span><span style="COLOR: #0000bb">end</span><span style="COLOR: #007700">(); </span><span style="COLOR: #ff8000">// 缓冲的输出现在被存储到一个cache文件中  <br></span><span style="COLOR: #007700">} <br><br></span><span style="COLOR: #0000bb">?> <br></span></span>


对函数进行缓存
<span style="COLOR: #000000"><br><span style="COLOR: #0000bb"> <br></span><span style="COLOR: #007700">require_once(</span><span style="COLOR: #dd0000">'../libs/cache/Lite.php'</span><span style="COLOR: #007700">); <br>require_once(</span><span style="COLOR: #dd0000">'../libs/cache/Lite/Function.php'</span><span style="COLOR: #007700">); <br></span><span style="COLOR: #0000bb">$options </span><span style="COLOR: #007700">= array( <br>    </span><span style="COLOR: #dd0000">'cacheDir' </span><span style="COLOR: #007700">=> </span><span style="COLOR: #dd0000">'../cache/test/'</span><span style="COLOR: #007700">, <br>    </span><span style="COLOR: #dd0000">'lifeTime' </span><span style="COLOR: #007700">=> </span><span style="COLOR: #0000bb">3600</span><span style="COLOR: #007700">, <br>    </span><span style="COLOR: #dd0000">'pearErrorMode' </span><span style="COLOR: #007700">=> </span><span style="COLOR: #0000bb">CACHE_LITE_ERROR_DIE <br></span><span style="COLOR: #007700">); <br></span><span style="COLOR: #0000bb">$cache </span><span style="COLOR: #007700">= new </span><span style="COLOR: #0000bb">Cache_Lite_Function</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$options</span><span style="COLOR: #007700">); <br><br></span><span style="COLOR: #0000bb">$cache</span><span style="COLOR: #007700">-></span><span style="COLOR: #0000bb">call</span><span style="COLOR: #007700">(</span><span style="COLOR: #dd0000">'function_to_bench'</span><span style="COLOR: #007700">, </span><span style="COLOR: #0000bb">12</span><span style="COLOR: #007700">, </span><span style="COLOR: #0000bb">45</span><span style="COLOR: #007700">); <br><br>function </span><span style="COLOR: #0000bb">function_to_bench</span><span style="COLOR: #007700">(</span><span style="COLOR: #0000bb">$arg1</span><span style="COLOR: #007700">, </span><span style="COLOR: #0000bb">$arg2</span><span style="COLOR: #007700">)  <br>{ <br>    echo </span><span style="COLOR: #dd0000">"This is the output of the function function_to_bench($arg1, $arg2) !<br>"</span><span style="COLOR: #007700">; <br>    return </span><span style="COLOR: #dd0000">"This is the result of the function function_to_bench($arg1, $arg2) !<br>"</span><span style="COLOR: #007700">; <br>} <br></span><span style="COLOR: #0000bb">?> <br></span></span>
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板