zoukankan      html  css  js  c++  java
  • ThinkPHP 5.1 添加一键清除缓存功能

    第一步:

    由于ThinkPHP 5.1 取消了所有的系统常量,所以我们先定义一个常量用来放系统运行时目录的路径(也就是runtime目录)。

    打开config/cache.php配置文件,添加如下代码:

        //自定义runtime_path常量
        'runtime_path'  => '../runtime',

    第二步:

    在公共文件application/common.php中建立一个公共函数,代码如下:

    <?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>

    原文地址:https://blog.csdn.net/chbxgbin/article/details/89705866

  • 相关阅读:
    Cocos2d-JS V3.10 一个小bug提示
    HTML5骨骼动画Demo | 使用min2d、createjs、pixi播放spine动画
    喜大普奔!Fanvas正式对外开源了,一键把Flash转为Canvas动画!移动终端动画开发不再困难。
    #回馈老读者,晒书拿学习卡#
    【关于新版Cocos2dx/Cocos2d-JS】安装包和使用方式的变化
    好消息!Html5游戏和动画的福音
    nodejs搭配phantomjs highcharts后台生成图表
    【H5动画】谈谈canvas动画的闪烁问题
    【HTTP劫持和DNS劫持】实际JS对抗
    嵌入式开发之网络通信---分布式自组网mesh。OLSR,batman,babel,aodv
  • 原文地址:https://www.cnblogs.com/panziwen/p/12501858.html
Copyright © 2011-2022 走看看