首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP Dir.class.php 檔案處理類別實戰應用:快取清除功能優化

     編輯:PHP 綜合知識

ThinkPHP 擴展庫內建 Dir.class.php 提供目錄掃描與刪除功能。本文實戰示範如何用它優化部落格系統的快取清除功能,實現按類型精準刪除(而非粗暴刪除整個 Runtime 目錄)。

Dir.class.php 核心方法

實戰場景:WBlog 快取清除控制器

<?php
public function del() {
    $type = trim($_GET['type']);
    if (empty($type)) $this->error('請選擇快取類型!');

    switch ($type) {
        case 1: $path = WEB_PATH.'Runtime'; break;              // 全部清空
        case 2: $path = WEB_PATH.'Runtime/Temp'; break;         // 檔案快取
        case 3: $path = WEB_PATH.'Runtime/Data/_fields'; break; // 資料快取
        case 4: $path = WEB_PATH.'Runtime/Cache'; break;        // 模板快取
        case 5: $path = APP_PATH.'Runtime'; break;              // 後台全部
        case 6: $path = APP_PATH.'Runtime/Temp'; break;         // 後台檔案快取
        case 7: $path = APP_PATH.'Runtime/Data/_fields'; break; // 後台資料快取
        case 8: $path = APP_PATH.'Runtime/Cache'; break;        // 後台模板快取
    }

    import("@.ORG.Dir"); // 載入 Dir.class.php(放置於後台專案 ORG 目錄)

    if (!Dir::isEmpty($path)) {
        Dir::del($path);
        $this->success('清除成功!');
    } else {
        $this->error('已清空!');
    }
}
?>

關鍵點解析

  • 靜態呼叫:Dir::isEmpty()、Dir::del() 無需實例化,直接使用
  • 路徑常數:WEB_PATH(前台專案根目錄)、APP_PATH(後台專案根目錄)
  • 分類清除:依功能區分 Temp、Data、Cache 三大快取類型,前後台獨立管理

進階應用建議

  • 搭配前端 AJAX 呼叫,提供「一鍵清除」按鈕與進度提示
  • 記錄清除操作日誌(操作人、時間、類型),便於追蹤問題
  • 若專案未內建 Dir.class.php,可從其他 ThinkPHP 版本複製至 Extend/Org/Dir.class.php
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方法用途
Dir::isEmpty($path)靜態方法,檢測目錄是否為空
Dir::del($path)靜態方法,遞歸刪除目錄或檔案