PEAR Cache_Lite覚書


公開されているAPIデータから得られたデータからHTMLページを作成する時、表示を早くしてくれるのが、PEARの Cache_Liteです。
Cache_Liteにはいろいろな使い方があるようですが、ひとつは取得したデータをキャッシュして保存しておく方法。もうひとつは取得したデータからHTMLページとなったものをキャッシュとして保存しておく方法。覚書として。
1、ひとつは取得したデータをキャッシュに保存
APIのリクエストurlを$reqとする。

require_once('Cache/Lite.php');
//キャッシュIDのセット
$cache_id ='[リクエストパラメーターなど]';
$cacheOptions = array(
'cacheDir' => dirname(__FILE__).'/cached/',
'lifeTime' => 24*3600,
//デバッグ時は0に
);
$objCache = new Cache_Lite($cacheOptions);
if ($cache = $objCache->get($cache_id)) {
    $PHP_DATA = $cache;
}
else{
    $huubuff = file_get_contents($req);
$PHP_DATA = unserialize($huubuff);
//APIデータがPHP形式の場合
 $objCache->save($PHP_DATA,$cache_id);
}

2、書き出したHTMLをキャッシュで保存

require_once('Cache/Lite.php');
$options = array(
       'cacheDir' => dirname(__FILE__).'/cached/',
       'lifeTime' => 24*3600,
);
$cache_lite = new Cache_Lite($options);
$cached_data = $cache_lite->get($cache_id);
$cache_id = '[リクエストパラメーターなど]';
$cached_data = $cache_lite->get($cache_id);
if ($cached_data) {
      echo $cached_data;    
} else {
//リクエストURLからAPIデータ取得して処理
$XML_DATA = simplexml_load_file($req);
//この場合XML形式のデータ処理
//データ処理HTML書き出しの前に
ob_start();//スタート
//----略-----
$hu_text = ob_get_contents();
ob_end_flush();//書き出し終了
$cache_lite->save($hu_text, $cache_id);
}