在我的WBlog中,有个清除缓存工能,所谓清除缓存就是删除程序运行时生成的缓存文件,这些文件全部都存在项目的Runtime文件夹里面,当时在做这个清除缓存的程序时使用项目函数库自定义的一个函数来删除缓存文件,只能整个地删除Runtime,太粗糙了,我觉得有必要作一下细分删除,其实thinkphp扩展类库有个不错的文件处理类Dir.class.php,Dir.class.php类,不是每个thinkphp版本都有,如果你所下载的版本没有,可以从其它版本去找,现在来说一下Dir.class.php的应用.
Dir.class.php是一个文件处理类,用它可以:
1、取得目录下面的文件信息
2、删除目录或文件
由于我要完善WBlog缓存清除功能,这里我只写了上面的第2个功能,至于第1个功能我将做模板文个修改功能时再写,下面是我在清除缓存的控制器定义的一个del()方法:
代码如下:
public function del(){
$type=trim($_GET['type']);
if(emptyempty($type)) $this->error('请选择缓存类型!');
switch($type) {
case 1:// 全部清空
$path = WEB_PATH.'Runtime';
break;
case 2:// 文件缓存目录
$path = WEB_PATH.'Runtime/Temp';
break;
case 3:// 数据目录
$path = WEB_PATH.'Runtime/Data/_fields';
break;
case 4:// 模板文件缓存
$path = WEB_PATH.'Runtime/Cache';
break;
case 5:// 清空全部后台缓存
$path = APP_PATH.'Runtime';
break;
case 6:// 后台文件缓存目录
$path = APP_PATH.'Runtime/Temp';
break;
case 7:// 后台数据目录
$path = APP_PATH.'Runtime/Data/_fields';
break;
case 8:// 模板文件缓存
$path = APP_PATH.'Runtime/Cache';
break;
}
import("@.ORG.Dir");//加载Dir.class.php类(我放在后台项目里)
if(!Dir::isEmpty($path)){//静态调用Dir.class.php的isEmpty()
Dir::del($path);
$this->success();
}else{
$this->error('已清空!');
}
}
说明:
import("@.ORG.Dir") --加载Dir.class.php类(我放在后台项目里)
Dir::isEmpty($path)--静态调用Dir.class.php的isEmpty()
Dir::del($path);--静态调用Dir.class.php的del()方法.
上面在使用类时,我使用了静态调用方法,这省去了实例化的麻烦.
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。