前面介绍了pear的安装,今天开始介绍pear的几个知名的package之一,如果有不清楚的地方请站内搜索“PEAR教程”获取前面的教程! 今天我们要介绍的是PEAR的Cache_Lite包,做web的说到提速眼睛瞪大的程度绝不亚于男人见到绝色美女时眼睛所瞪大的程度,因此,我这里第一个要介绍的就是PEAR的Cache_lite包,利用这个package可以根据你的需要缓存网页的任何一个部分,从而大大的提高了页面的生成和载入速度! 首先去Pear的List Packages下载Cache_Lite这个安装包,写这个教程的时候,稳定的版本是1.7.2,所以我们就下载这个版本,下载下来后解压缩,然后将文件放置在PEAR的根目录下(文件目录如何组织,后面有介绍),然后我们去manual对应的章节看看如何使用。那些关于包的介绍你可以先看看,我们这里没有前戏,直接切入主题,下面是Cache_Lite::get()的例子。我们就从这个例子入手,我在例子中增加了中文的注释 看了上面的这个例子,是不是发现很简单?其实缓存的关键之处不在于如何生成和删除缓存,而在于如何平衡缓存静止和动态的关系,如何在适当的时候重建缓存。下面我开始举例,让大家体会到缓存的好处!,请在tutor(我们教程中的例子对应的根目录)下建立文件cache,*nix操作系统请设置属性为0777,然后在tutor文件夹下建立cache.php,输入下面的代码 < ?php キャッシュなしの実行時間は次のとおりです: ".(get_microtime()-$s)."秒"; 現在のページは次のようになります: ".(get_microtime()-$s)."秒
require_once"Cache/Lite.php";//这里是相对PEAR的地址,找到刚才下载的包中Lite.php这个文件后你就应该知道如何部署这个文件夹了!
$options=array(
cacheDir=>/tmp/,//这里是Cache的路径,最好用绝对路径,我们的例子中将会有说明
lifeTime=>7200,//缓存的失效时间,秒为单位
pearErrorMode=>CACHE_LITE_ERROR_DIE//报错模式
);
$cache=newCache_Lite($options);//参数设置完之后建立缓存
if($data=$cache->get(id_of_the_page)){//如果id=id_of_the_page这个缓存存在的话,则直接将缓存数据echo出来
// Cache hit !
// Content is in $data
// (...)
}else{//缓存不存在,则生成缓存
// No valid cache found (you have to make and save the page)
// (...)
}
require_once"config.php";
require_once"Cache/Lite.php";
//次のコードはページの実行時間を計算するものであり、cacheとは関係ありません
functionget_microtime()
{
List($usec, $sec)=explode( ,microtime());
Return((float)$usec+(float)$sec);
}
$s= get_microtime();
//以下はキャッシュですsettings
$options=array (
cachedir = & gt; web_dir. "/Cache/",
// チューターの下にファイル キャッシュを設定してください (チュートリアルの例)
// 0777
lifeTime=> ;10,//10 秒の有効期限
pearErrorMode=> CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite($options);
$cache_id=cache;//ID は一意である必要があります
//それ以外の場合は競合します他の人のキャッシュと
if($data=$cache->get($cache_id)){
//データはデータを取得した結果です。キャッシュが存在し、有効期限が切れていない場合、
//データを直接取得します。
echo$ date( "Y-m-d H:i:s");
$data.="
echo$ data;
$cache ->save($data);
}
echo"
? >
in ブラウザで http://127.0.0.1/tutor/cache.php を実行し、キャッシュ ディレクトリにファイルが生成されるかどうかを確認します。これは達成感でしょうか。 !
Web ページでは、最初の実行時間は約 1 秒でしたが、キャッシュが生成された後は、その時間は元の時間のわずか 1/1000 になったことがわかりました。この効率についてはもう説明する必要はありません。 !実際、上記の例の一般的なプロセスは次のとおりです。 1. キャッシュ ID を含むキャッシュ パラメーターを確立します。 2. パラメーターと ID に基づいてキャッシュが存在するかどうかを確認します。存在する場合は、キャッシュ データが $data に取得されます。それ以外の場合は、キャッシュを再生成し、ページの結果を変数に保存し、変数のデータをキャッシュに書き込みます。ただし、この方法はすべての出力を変数に書き込む必要があるため、非常に不便です。実際には、多くの文字列接続が必要になり、コードの保守が困難になります。もちろん、単純なキャッシュを使用することをお勧めします。このアプローチを取ってください。しかし、心配しないでください。強力な PEAR はそれほど精神的に遅れているわけではないので、実際にバッファを取得して変数を取り出すという別の方法も提供しています。この簡単な例を見てみましょう。対応するマニュアルの章はここにあります。 。
< ?php
require_once"config.php";
require_once"Cache/Lite/Output.php";
//ここでのrequireファイルは異なることに注意してください
$options=array(
cacheDir=> WEB_DIR. "/cache/",
lifeTime=>10,//10 秒の有効期限
);
$cache=newCache_Lite_Output($options);
$cache_id=obcache;
if(! ($ Cache- & GT; Start ($cache_id)) {
// キャッシュが存在しない場合、プログラムは自動的にキャッシュを出力します
データベースクエリ
をここで実行できます? PHPはそれを許可しているので、それは非常に便利ではありません
&lt;?php
$ cache-&gt(); //これを忘れないでください/関数は出力バッファから出てきたところです
}
?>
キャッシュ ディレクトリに別のファイルがあるかどうか確認してみませんか?
ここでキャッシュについて説明します。注意すべき点がいくつかあります。
1. キャッシュの ID は一意である必要があり、一部のパラメーターは絶対として記述するのが最適です。 3. このセクションではコメントに重点を置いていますので、コメントをよく読んでください
さらに、私の紹介を通じて、キャッシュを削除する方法についての対応するマニュアルを読むことができます。上記の例を使用できれば、次のキャッシュ操作は難しくないはずです。