【CakPHP3】クリアしてもキャッシュが消えない!
CakPHP3のキャッシュ機能の話です。
「app.php」に以下のような感じの設定をして、キャッシュをwriteコマンドで保存してみたんです(キャッシュファイルは「/tmp/cache/hogege/」に保存されます)
'Cache' => [ 'test' => [ 'className' => 'File', 'duration' => '+10 seconds', 'path' => CACHE.'hogege'.DS, ],
//キャッシュ保存! Cache::write('test_key_hoge', 'テスト文章だよ!', 'test');
そしてキャッシュを削除しようとして「Cache::clear(true);」とか「Cache::gc('test')」とかを実行してみたんですけど、なかなかうまく削除できません・・。
しばらく調べてみたところ、「Cache::clear」とか「Cache::gc」とかは、「FileEngine」(memcacheとか)を使っているときに使うコマンドのようです。
私は上記の設定の通り「File」キャッシュを使っているので、「Cache::delete」の方を使わないといけなかったんですね・・。
以下のコマンドでうまくキャッシュを削除できました。
Cache::delete('test_key_hoge', 'test');
「Cache::delete」だと「期限切れのキャッシュだけ削除する」みたいな器用なことができなくて、いろいろ不便ですね・・。
やっぱ背伸びして「FileEngine」を使った方がいいのかしら・・。
もっと詳しい情報を知りたい人公式ページをご参照あれ。
http://book.cakephp.org/3.0/en/core-libraries/caching.html
以上!