先日、EC-CUBE2系のサイトを担当する案件があり、キャッシュの削除の仕方が分からなかったので色々と調べてみた。
キャッシュファイルはどうやら、/data/Smarty/templates_c/配下に作られる様子。
ただ、いちいちキャッシュファイルを手動で削除するのも面倒なので、一括で削除するPHPスクリプトを書いてみた。
<?php
// 削除対象のディレクトリを配列で指定
$cacheDir = array(
'/data/cache/*',
'/data/Smarty/templates_c/default/*',
);
// 削除しないファイル名を指定
$excludeFile = array(
'mtb_constants.php',
);
foreach($cacheDir as $dir) {
if($result = glob($dir)) {
foreach($result as $filePath) {
$file = basename($filePath);
if(!in_array($file, $excludeFile) && is_writable($filePath)) {
if(unlink($filePath)) {
echo $filePath."を削除しました\n";
}
}
}
}
}
補足しておくと、/data/cache/mtb_constants.phpには様々な定数設定がされているため、削除対象外として$excludeFileに指定している。
また、ドットで始まるファイル(.gitkeepなど)は$excludeFileに指定しなくても、このスクリプトで削除されることはない。