No.78


【CakePHP】キャッシュのクリア

CakePHPのキャッシュを一発で消したい

 PHPのメジャーなワークフレームであるCakePHP。利用者も多く大いに発展しているフレームワークなのだが、ひとつ大きな欠点を持っている。

 それは利点でもある強力なキャッシュ機構だ。特にモデルのキャッシュで苦しめられた経験のある開発者の方は多いだろう。

参考 【CakePHP】テーブルの変更が反映されない

 というわけで、自分はプログラムの更新分の環境への適用作業時に必ずキャッシュ全体をクリアするようにしている。モデルのことだけ考えればmigration実行時などのDB構造変更時だけでもいいのだが、何が起きるか予測が付かないよりは初期化してしまった方が気が楽だからだ。

 前述の参考リンクの方法で消してもいいのだが、自分の関わる仕事ではgitで管理しているケースが多いので、gitの管理ファイルを除外した下記のスクリプトを流している。  

cd /(CakePHPのカレント)/app/tmp/cache/
find . -type f -a -not \( -name 'empty' -o -name '.gitkeep' \) | xargs rm -f

 これで一発すっきりだ。

 なお、ログとかまで含めて全リセットしたい場合は最初のcd

cd /(CakePHPのカレント)/app/tmp/

 とすればOK。