[PHP-users 30847] Re: Cache_Lite について
Y.Watanabe
haward99 @ yahoo.co.jp
2006年 11月 29日 (水) 22:16:31 JST
渡辺です。
どっかで見たコードだと思ったら、
http://pear.php.net/manual/en/package.caching.cache-lite.intro.php
マニュアルに例示されてるコードですね。
で、
Masashi Shinbara wrote on 2006/11/29 17:49
> > } else { // 有効なキャッシュが見つからなかった
> > print "false";
> > // キャッシュミス !
> > // キャッシュに入れるデータを $data に入れる
> > // (...)
> > $Cache_Lite->save($data);
> > }
> $data に値を入れていないので
> false が表示されるのは正常な動作だと思います。
> キャッシュするデータを $data に入れましょう。
が正解です。
以下が動くコード。
'cacheDir' => '/tmp/',
のところは適宜好きなディレクトリにしてください。
<?php
// Include the package
require_once('Cache/Lite.php');
// Set a id for this cache
$id = '123';
// Set a few options
$options = array(
'cacheDir' => '/tmp/',
'lifeTime' => 10
);
// Create a Cache_Lite object
$Cache_Lite = new Cache_Lite($options);
// Test if thereis a valide cache for this id
if ($data = $Cache_Lite->get($id)) {
echo "Cache hit !\n";
echo "Content is in $data\n";
} else { // No valid cache found (you have to make the page)
echo "Cache miss !\n";
$data = "hogehoge";
$Cache_Lite->save($data);
}
?>
ちなみに、
'cacheDir' => '/tmp',
じゃないのか?という話もありましたが、
'cacheDir' => '/tmp/',
というふうに最後にスラッシュつけるのが正解です。
つけないでやると、おかしなことになります(やってみるとわかる)。
これはCache_Liteのバグとも言えますが現状では仕様ですってことで。
PHP-users メーリングリストの案内