有効期限前にキャッシュファイルを明示的に削除する
PHPのunlinkはwindows環境でも機能する
Cakephpでは様々なレイヤーでキャッシュ機能を利用することができ、サイトのパフォーマンスを向上させることができる。htmlファイルをキャッシュするページキャッシュは効果的で、
viewレベル
elementレベル
どちらでも利用することができ、システムの負荷を軽減に貢献できる。しかし、動的なwebシステムでは、view全体をキャッシュさせる機会というのはそれほど多くなく、elementレベルのキャッシュのほうが利用頻度が高いと考えている。
キャッシュファイルで内容が更新されてしまったものや期限が切れているファイルは削除していかないと管理が煩雑になってしまう。特に部分的に更新された部分テンプレートをキャッシュし続け、表示され続けるという事態は避けたい。そのために、キャッシュファイルを明示的に削除する方法を抑えておかないといけない。
unlink(TMP.'/cache/views/element_'.$id);
Cakephpでは、標準で
app\tmp\cache\views
にviewやelementのキャッシュファイルが保存されるが、キャッシュの保存ディレクトリを変更しているため上のようにフルパスを指定している。TMPというcakephpのグローバル定数は変更しており、上のようなファイル指定となっている。tmpディレクトリ(Cakephp)のパス変更を参照
多言語化などによりサイトが多チャネル化している場合には、以下のように抽象化したファイル名を指定してキャッシュファイルを削除できる。
$replaced_domain = str_replace(".", "_", DOMAIN); unlink(TMP.'/cache/views/element_'.$replaced_domain.'_'.$id);
unlinkを使ってキャッシュ管理をもれなく行うことが可能になる。