先日、EC-CUBE2系のサイトを担当する案件があり、キャッシュの削除の仕方が分からなかったので色々と調べてみた。
キャッシュファイルはどうやら、/data/Smarty/templates_c/配下に作られる様子。
ただ、いちいちキャッシュファイルを手動で削除するのも面倒なので、一括で削除するPHPスクリプトを書いてみた。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?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に指定しなくても、このスクリプトで削除されることはない。