PEAR::Cache_Lite・PEAR::Cacheでキャッシュ全消し

PEAR::Cache_Liteなら

Cache_Lite::clean()

PEAR::Cacheだと・・・・

Cache::flush()

以下、何故PEAR::Cache調べたかの経緯。


OpenPNE2.14.*で、追加された新機能:画像アップロード容量制限機能。


ところが、「全体」や「その他」の画像で、数値が正しく表示されなる場合があること発見。


追究すると、管理画面で設定を変えると「その他」「全体」の計算ロジックが変わるのに、ファンクションキャッシュで変更前の値が残ってるのが原因でした。


しかしこのファンクションキャッシュ、引数にメンバーID指定あり。


つまり・・・管理画面で設定を変えたときに、キャッシュ削除しようと思ったら。

メンバー全員分、cache_dropをぐるぐる回すと言う・・・・実に、力技な事に。


じゃあ、せめて全部のファンクションキャッシュを一括で消せないかと思い調べましたが、でてくるのはCache_Liteのclean()
http://pear.php.net/manual/ja/package.caching.cache-lite.cache-lite.clean.php


PEAR::Cacheの全文を見ると、flush()と言うのがありました。これか!
Docs For Class Cache


でも・・・OpenPNEのキャッシュ設定、よーくみると・・・
memcache使うときはCache、使わない場合はCache_Lite使ってたりして
 ややこしい(汗)


こういうコア設計に絡むと、修正しずらいです。。


正直、キャッシュ時間が過ぎれば破棄されて正常に戻るので、
 対応優先度低いし、なあ・・・・・ ^^;