ThinkPHP 5.1 添加一键清除缓存功能
第一步:
由于ThinkPHP 5.1 取消了所有的系统常量,所以我们先定义一个常量用来放系统运行时目录的路径(也就是runtime目录)。
打开config/cache.php配置文件,添加如下代码:
//自定义runtime_path常量'runtime_path' => '../runtime',
第二步:
在公共文件application/common.php中建立一个公共函数,代码如下:
// 应用公共文件//清理缓存函数
if (!function_exists('delete_dir_file'))
{/*** 循环删除目录和文件* @param string $dir_name* @return bool*/function delete_dir_file($dir_name) {$result = false;if(is_dir($dir_name)){if ($handle = opendir($dir_name)) {while (false !== ($item = readdir($handle))) {if ($item != '.' && $item != '..') {if (is_dir($dir_name . DS . $item)) {delete_dir_file($dir_name . DS . $item);} else {unlink($dir_name . DS . $item);}}}closedir($handle);if (rmdir($dir_name)) {$result = true;}}}return $result;}
}
第三步:
在模块的控制器中添加一个方法 clear_all() ,代码如下:
/*** 清除所有缓存 ***/
public function clear_all() {$CACHE_PATH = config('cache.runtime_path').'/cache/';$TEMP_PATH = config('cache.runtime_path').'/temp/';$LOG_PATH = config('cache.runtime_path').'/log/';if (delete_dir_file($CACHE_PATH) && delete_dir_file($TEMP_PATH) && delete_dir_file($LOG_PATH)) {$this->success('清除缓存成功!');} else {$this->error('清除缓存失败!');}
}
第四步:
在Html模板文件文件中添加代码:
<a href="javascript:;" onclick="Clear_All(this)" data-GetUrl="{:url('clear_all')}">清除所有缓存a>
最后一步就是创建这个链接对应的JS代码了,在Html模板文件的末尾添加如下JS代码:
<script src="/jquery/jquery.min.js"></script>
<script type="text/javascript">//清除所有缓存function Clear_All(obj) {var url = obj.getAttribute('data-GetUrl');layer.confirm('你确定要清除所有缓存吗?', {icon: 3, title:'提示'},function(){$.get(url,function(info){if(info.code === 1){setTimeout(function () {location.href = info.url;}, 1000); //清除成功1秒后刷新页面,如果不需要刷新可以注释掉此行。}//layer.msg(info.msg,{icon:1});layer.msg(info.msg);});},function(){});}
</script>
提示:jquery一定是要在 javascript 之前引入哦。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
