Don't forget that you have had a dream

    

thinkPHP5网站后台添加一键清除缓存功能

前言

thinkPHP的缓存功能对于网站运行来说是比不可少的,但是在有些时候,特别是在做开发的时候,缓存实在是令人头疼,这边文章分享下tp5通过ajax提交达到一键清除网站缓存的功能

/uploads/20180818/4e93d17f3ebb9e496c9b9448d90e1d72.png

使用方法

后端PHP中

  1. 在公共文件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;
    }
}
  1. controller(控制器)中添加
/**
 * 清除缓存
 */
public function clear() {
    if (delete_dir_file(CACHE_PATH) || delete_dir_file(TEMP_PATH)) {
        $this->success('清除缓存成功!');
    } else {
        $this->error('清除缓存失败!');
    }
}
  1. JavaScript中添加
<script type="text/javascript">
//清除缓存
function clearPhp(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);
            }
            layer.msg(info.msg,{icon:1});
        });
    },
    function(){});
}
</script>
  1. html页面中,因为需要在任何页面都能快速清除缓存,所以我把调用代码写在了公共文件中
<a href="javascript:void(0);" class="list-group-item cache" onclick="clearPhp(this)" data-GetUrl="{:url('admin/clear')}">
    <div class="media">
        <div class="media-img" style="color: #333;"><i class="fa fa-bolt"></i></div>
        <div class="media-body">
            <div class="font-strong"></div>清除所有缓存<small class="text-muted float-right">删除所有 temp+cache</small>
        </div>
    </div>
</a>

这样下来就能达到一键清除系统缓存的目的了

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!
所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 知识共享许可协议 进行许可。

评论已关闭

  更新日志

博客banner下方滚动文字替换为使用 一言API 随机获取 --- updated on 2019-05-22 09:04:31 星期三

  关于博主

三里林,一个致力于分享,分享心得,分享技术,分享知识点的个人博客

  近期评论

  分类目录

生前风采有谁听闻 身后恶名竟无人争 当初穿林拂叶见识得 白衣少年胆怯几分

有些人坐飞机就能见到,有些人坐时光机才可以。

飞雪连天射白鹿,笑书神侠倚碧鸳。

心情已经习惯和候鸟一起迁徙只是有些仓惶而已。

亦恶亦怜薛成美,半生恶尽半生痴。

大地母亲在忽悠着你。

有一种爱情,是插在心上的刀。

impossible的完整形式是i'm possible