[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 メーリングリストの案内