Clear.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace app\admin\controller\system;
  3. use app\admin\controller\AuthController;
  4. use service\CacheService;
  5. use service\JsonService as Json;
  6. use think\Log;
  7. use think\Cache;
  8. /**
  9. * 首页控制器
  10. * Class Clear
  11. * @package app\admin\controller
  12. *
  13. */
  14. class Clear extends AuthController
  15. {
  16. public function index()
  17. {
  18. return $this->fetch();
  19. }
  20. /**
  21. * 刷新数据缓存
  22. */
  23. public function refresh_cache(){
  24. if(function_exists('shell_exec')){
  25. `php think optimize:schema`;
  26. `php think optimize:autoload`;
  27. `php think optimize:route`;
  28. `php think optimize:config`;
  29. }else if(function_exists('exec')){
  30. exec('php think optimize:schema');
  31. exec('php think optimize:autoload');
  32. exec('php think optimize:route');
  33. exec('php think optimize:config');
  34. }else{
  35. return Json::successful('请开启shell_exec或者exec函数!');
  36. }
  37. return Json::successful('数据缓存刷新成功!');
  38. }
  39. /**
  40. * 删除缓存
  41. */
  42. public function delete_cache(){
  43. $this->delDirAndFile(TEMP_PATH);
  44. $this->delDirAndFile(CACHE_PATH);
  45. return Json::successful('清除缓存成功!');
  46. }
  47. /**
  48. * 删除日志
  49. */
  50. public function delete_log(){
  51. $this->delDirAndFile(LOG_PATH);
  52. return Json::successful('清除日志成功!');
  53. }
  54. /** 递归删除文件
  55. * @param $dirName
  56. * @param bool $subdir
  57. */
  58. function delDirAndFile($dirName,$subdir = true){
  59. if ($handle = opendir("$dirName")){
  60. while(false !== ($item = readdir($handle))){
  61. if($item != "." && $item != ".."){
  62. if(is_dir("$dirName/$item"))
  63. $this->delDirAndFile("$dirName/$item",false);
  64. else
  65. @unlink("$dirName/$item");
  66. }
  67. }
  68. closedir($handle);
  69. if(!$subdir) @rmdir($dirName);
  70. }
  71. }
  72. }