Cache_Lite のキャッシュを削除するには、2つの方法が用意されています。
1つは、キャッシュファイルを個別に削除する方法と、条件付でディレクトリに保存されて いる複数のキャッシュファイルを対象に削除する方法です。 個別に削除するには、remove関数を使用し、ディレクトリ単位での削除は、clean関数を 使用します。
Cache_Liteには、メモリキャッシングと呼ばれる配列でキャッシュを管理する方法もあり ますが、ここでの説明では対象としていません。
remove関数は、キャッシュIDとグループ名で識別してキャッシュファイルを削除します。
グループ名は、デフォルトで'default'と設定されているためキャッシュIDとグループ名で 一意に識別されます。
次の例は、少し無理がありますが使い方はこんな感じです。
<?php require_once 'Cache/Lite.php'; $bCache = false; $awsUrl = 'http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService'; $awsUrl .= '&SubscriptionId=「Amazonで取得したID」'; $awsUrl .= '&Operation=ItemSearch&SearchIndex=Music&Artist=Doobie%20Brothers'; $awsUrl .= '&ResponseGroup=Medium'; $cacheOptions = array ( 'cacheDir' => './tmp/', 'lifeTime' => '30', ); $cacheId = $awsUrl; $objCache = new Cache_Lite($cacheOptions); if (!$bCache) { $objCache->remove($cacheId); } if ($cache = $objCache->get($cacheId)) { $awsBuff = $cache; } else{ $awsBuff = file_get_contents($awsUrl); $objCache->save($awsBuff,$cacheId); } print $awsBuff; ?>
clean関数は、ディレクトリのすべてのキャッシュファイル又は同一グループ名の複数 キャッシュファイルを対称に削除できます。グループ名が指定されない場合、ディレクトリ内の すべてのキャッシュファイルが対象になります。
また、clean関数は次の条件を指定してキャッシュファイルを削除することができます。
<?php require_once 'Cache/Lite.php'; $awsUrl = 'http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService'; $awsUrl .= '&SubscriptionId=「Amazonで取得したID」'; $awsUrl .= '&Operation=ItemSearch&SearchIndex=Music&Artist=Doobie%20Brothers'; $awsUrl .= '&ResponseGroup=Medium'; $cacheOptions = array ( 'cacheDir' => './tmp/', 'lifeTime' => '30', ); $cacheId = $awsUrl; $objCache = new Cache_Lite($cacheOptions); $objCache->clean(false,'old'); if ($cache = $objCache->get($cacheId)) { $awsBuff = $cache; } else{ $awsBuff = file_get_contents($awsUrl); $objCache->save($awsBuff,$cacheId); } print $awsBuff; ?>
Copyright 1997-2010 BBB All rights reserved.