>  기사  >  백엔드 개발  >  再次研究下cache_lite_PHP教程

再次研究下cache_lite_PHP教程

WBOY
WBOY원래의
2016-07-21 15:56:48997검색

晚上详细的看了下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>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/317938.htmlTechArticle晚上详细的看了下cache_lite,功能比我想象中的强大的多。当然目前我还没有发现它是否支持直接保存PHP代码来缓存的功能,不过我想应该是...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.