以前に pear のインストールについて紹介しました。今日は、pear のいくつかの有名なパッケージのうちの 1 つを紹介します。不明な点がある場合は、サイトで「PEAR チュートリアル」を検索してください。
今日紹介するのは、Web 開発者が高速化について語るときに目を丸くするのと同じです。 , このパッケージを使用すると、ニーズに応じて Web ページの任意の部分をキャッシュできるため、ページの生成と読み込み速度が大幅に向上します。
まず、Pear の List Packages に移動して Cache_Lite インストール パッケージをダウンロードします。このチュートリアルを作成するときの安定バージョンは 1.7.2 なので、このバージョンをダウンロードし、ダウンロード後に解凍して、ファイルを PEAR のルート ディレクトリに置きます。ファイル ディレクトリの整理方法については後ほど説明します)。その後、マニュアルの対応する章に進み、その使用方法を確認します。最初にパッケージに関する概要を見てください。ここでは前置きはありません。次は Cache_Lite::get() の例です。この例から始めましょう。例に中国語のコメントを追加しました。
require_once "Cache/Lite.php";//これは、PEAR に対する相対アドレスです。ダウンロードしたパッケージ内で Lite.php ファイルを見つけたら、このフォルダーをデプロイする方法がわかるはずです。
$オプション=配列(
'cacheDir'=>'/tmp/',//これはキャッシュのパスです。絶対パスを使用するのが最善です。これについては例で説明します。
'lifeTime'=>7200, //キャッシュの有効期限(秒)
'pearErrorMode'=>CACHE_LITE_ERROR_DIE//エラー報告モード
);
$cache=newCache_Lite($options);//パラメータを設定した後にキャッシュを作成します
if($data=$cache->get('id_of_the_page')){// id=id_of_the_page のキャッシュが存在する場合、キャッシュされたデータを直接エコーアウトします。
// キャッシュヒット!
// コンテンツは $data にあります
// (...)
}else{// キャッシュが存在しない場合はキャッシュを生成します
// 有効なキャッシュが見つかりません (ページを作成して保存する必要があります)
// (...)
上記の例を読んだ後、それが非常に単純であることがわかりましたか
?
実際、キャッシュの鍵は、キャッシュを生成および削除する方法ではなく、静的キャッシュと動的キャッシュの関係のバランスをとる方法、および適切なタイミングでキャッシュを再構築する方法です。キャッシングの利点を皆さんに理解していただくために、例から始めましょう。 *nix オペレーティング システムの場合は、tutor (チュートリアルの例に対応するルート ディレクトリ) の下にファイル キャッシュを作成し、プロパティを 0777 に設定してから、tutor フォルダーの下に cache.php を作成し、次のコードを入力してください
。 php
require_once"config.php";
require_once"キャッシュ/Lite.php";
//次のコードはページの実行時間を計算するものであり、キャッシュとは関係ありません。
functionget_microtime()
{
list($usec,$sec)=explode(' ',microtime());
return((float)$usec+(float)$sec);
}
$s= get_microtime();
//以下はキャッシュ設定です
$オプション=配列(
'cacheDir'=> WEB_DIR."/cache/",
// tutor (チュートリアルの例に対応するルート ディレクトリ) に移動してください。
// ファイルキャッシュを作成し、
//*nix オペレーティング システムの場合は、属性を 0777 に設定してください
'lifeTime'=>10,// 有効期限は 10 秒です
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite($options);
$cache_id='cache' //id は一意である必要があります。
// そうしないと、他の人のキャッシュと競合します。
if($data=$cache->get($cache_id)){
//データは、キャッシュが存在し、有効期限が切れていない場合、データを取得した結果です。
//データを直接取得する
エコー$データ;
}それ以外{
//それ以外の場合はキャッシュを作成します
// 以下では時間を消費するために意図的にループを使用します
while($i<10000000)
$i++;
$data='キャッシュ作成時刻:'.date("Ymd H:i:s");
$data.="<p>キャッシュなしの実行時間は次のとおりです: ".(get_microtime()-$s)."秒";
エコー$データ;
$cache->save($data);
}
echo"<p>現在のページの所要時間: ".(get_microtime()-$s)."秒</p>";
?>
ブラウザで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"キャッシュ/Lite/Output.php";
//ここで必要なファイルは異なることに注意してください。
$オプション=配列(
'cacheDir'=> WEB_DIR."/cache/",
'lifeTime'=>10,// 有効期限は 10 秒です
'pearErrorMode'=>CACHE_LITE_ERROR_DIE
);
$cache=newCache_Lite_Output($options);
$cache_id='obcache';
if(!($cache->start($cache_id))){
//存在しない場合はキャッシュを作成します。存在する場合はプログラムが自動的にキャッシュを出力します。
?>
ここでは何をしてもいいのですが、
phpの実行を含む
PHP で許可されている限り、データベース クエリを含むすべてのデータベース クエリをここで完了できるのは非常に便利だと思いませんか?
<?php
$cache->end();//これを忘れないでください。
//そうしないと、キャッシュは正常に作成されません。
//この関数は出力バッファから出力されます
}
?>
キャッシュ ディレクトリに別のファイルがあるかどうか確認してみますか?
これでキャッシュの概要は終わりです。注意すべき点がいくつかあります。
1. キャッシュの ID は一意である必要があり、一部のパラメーターは統合できます
2. キャッシュのキャッシュパスは絶対パスで記述するのがベストです。
3. このセクションの焦点はコメントです。
また、上記の例は、他の人に影響を与えるためのものです。上記の例を使用して、続行します。 キャッシュ操作は難しくありません。