Heim  >  Artikel  >  php教程  >  再次研究下cache_lite

再次研究下cache_lite

WBOY
WBOYOriginal
2016-06-13 12:33:17938Durchsuche

晚上详细的看了下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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn