頻繁に書くようなコードは、自作の関数で定義しておくと、呼び出しがとても簡単で楽になります。
APIを使ったサイトを作るうえでは、キャッシュ機能を用いるケースが多いです。
PHPの場合、PEARのCache_Liteライブラリがとても便利なのですが、キャッシュ機能は頻繁に使うので、自作の関数を作ってみた。
”キャッシュ期間”、”キャッシュディレクトリ”、”クリーニング値”の3つの引数を渡して呼び出し、Cache_Liteオブジェクトを返します。
********* w_cl()関数 **********
キャッシュ機能。Cache_Liteオブジェクトを返す。
@パラメータは以下の3つ
$cache_period キャッシュの保存期間。デフォルト値:86400(24*3600)
$cache_dir キャッシュ保存先のディレクトリ。デフォルト値:cached/
$clean 期限切れキャッシュの自動クリーニング(20~200)。デフォルト値:100
**********************************/
function w_cl($cache_period=86400, $cache_dir='cached/', $clean=100) {
//Cache_Liteに渡す配列
$options = array(
'cacheDir' => $cache_dir,
'caching' => true,
'lifeTime' => $cache_period,
'automaticCleaningFactor' => $clean
);
return new Cache_Lite($options);
}
で、使うときは、デフォルトの場合・・・
//Cache_Liteライブラリの読み込み
include_once 'Cache/Lite.php';
//w_cl関数でCache_Liteオブジェクト作成
$cache = w_cl();
//キャッシュID
$cache_id = 'data';
$cache_data = $cache->get($cache_id);
if($cache_data){
//キャッシュがある場合、キャッシュ内容を表示
echo $cache_data;
}else{
//キャッシュがない場合の処理
処理1;
処理2;
・・・
//キャッシュへ保存
$cache->save($text, $cache_id);
}
キャッシュ期間を”1週間”、キャッシュディレクトリを”tmp/”、キャッシュをもっと削除する(クリーニング値を高くする)場合は・・・
//Cache_Liteライブラリの読み込み
include_once 'Cache/Lite.php';
//w_cl関数でCache_Liteオブジェクト作成
$period = 24*3600*7;
$dir = 'tmp/';
$cln = 200;
$cache = w_cl($period, $dir, $cln);
//キャッシュID
$cache_id = 'data';
$cache_data = $cache->get($cache_id);
if($cache_data){
//キャッシュがある場合、キャッシュ内容を表示
echo $cache_data;
}else{
//キャッシュがない場合の処理
処理1;
処理2;
・・・
//キャッシュへ保存
$cache->save($text, $cache_id);
}
こんな感じで使うと、若干コードが短くなるかな・・・と。
■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/96