thinkphp 远程删除缓存(Runtime目录)的代码

作者: admin 日期: 2015-12-31 20:48:49 人气: - 评论: 0

  在公司做了一个多月,发现由thinkPHP的缓存造成了很多问题,代码发布到线上由于运维人员没有及时删除缓存,出现了各种坑爹的问题,所以想出了写一个远程删除缓存的方案,如果代码上线之后运维人员忘记删除缓存(Runtime目录)可以由开发人员手动调研代码删除,比较适合小型的系统(我想大型的也不会用tp吧)。代码参考了一些网上的


<?php

/*用于自住管理线上环境的模块*/
namespace Mgr\Controller;
use Think\Controller;
class MgrController extends Controller{


function _initialize(){
echo header("Content-type: text/html; charset=utf-8");
}

/*清空目录*/
   private function deldir($dir)
{
//先删除目录下的文件:
       $dh = opendir($dir);
while ($file = readdir($dh)) {
if ($file != "." && $file != "..") {
$fullpath = $dir . "/" . $file;
if (!is_dir($fullpath)) {
unlink($fullpath);
} else {
$this->deldir($fullpath);
}
}
}
}

/*清空Runtime目录并且不删除日志*/
   public function ClearRuntime(){
/*获得上次操作的时间*/
       $Prev_Clear_Oper_Time=S('Prev_Clear_Oper_Time');
if($Prev_Clear_Oper_Time){
/*上次操作时间存在*/
           $diff=time()-$Prev_Clear_Oper_Time;
echo '上次操作距离现在'.$diff.'秒<br/>';
}
try {
$this->ClearCache();
$this->ClearData();
$this->ClearTemp();
}
catch(Exception $e) {
echo '操作失败';
var_dump($e);
}
echo '操作成功';
/*设置操作时间*/
       S('Prev_Clear_Oper_Time',time());
}

/*清空模板缓存目录*/
   public function ClearCache(){
try{
$this->deldir(CACHE_PATH);
}catch(Exception $e){
echo '删除模板缓存失败<br/>';
var_dump($e);
}
echo '删除模板缓存成功<br/>';
}

/*清空应用数据目录*/
   public function ClearData(){
try{
$this->deldir(DATA_PATH);
}catch(Exception $e){
echo '删除应用数据失败<br/>';
var_dump($e);
}
echo '删除应用数据成功<br/>';
}

/*清空应用缓存目录*/
   public function ClearTemp(){
try{
$this->deldir(TEMP_PATH);
}catch(Exception $e){
echo '删除应用缓存失败<br/>';
var_dump($e);
}
echo '删除应用缓存成功<br/>';
}

/*清空应用日志目录*/
   public function ClearLog(){
try{
$this->deldir(TEMP_PATH);
}catch(Exception $e){
echo '删除应用日志失败<br/>';
var_dump($e);
}
echo '删除应用日志成功<br/>';
}

}


相关内容

发表评论
更多 网友评论0 条评论)
暂无评论

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0193秒, 内存占用1.83 MB, 访问数据库13次

闽ICP备15009223号-1