Home > php教程 > php手册 > body text

再次研究下cache_lite

WBOY
Release: 2016-06-13 12:33:17
Original
955 people have browsed it

晚上详细的看了下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>
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template