PbootCMS模板自動清理runtime快取

黄文Rex發表於2024-12-06
  1. 修改 ExtLabelController.php 檔案
    • 開啟 /APPs/home/controller/ExtLabelController.php 檔案。
    • test() 方法後面新增以下方法:
      // 自動會話清理指令碼
      public function clean_session() {
          check_dir(RUN_PATH . '/archive', true);
          $data = json_decode(trim(substr(file_get_contents(RUN_PATH . '/archive/session_ticket.php'), 15)));
          if ($data->expire_time && $data->expire_time < time()) {
              del_dir(RUN_PATH . '/runtime');
              $data->expire_time = time() + 60 * 60 * 24; // 下一次清理時間
              create_file(RUN_PATH . '/archive/session_ticket.php', "<?php die('Access Denied'); ?>".json_encode($data), true);
          } else {
              $data->expire_time = time() - 60 * 60 * 24; // 初始化清理時間
              create_file(RUN_PATH . '/archive/session_ticket.php', "<?php die('Access Denied'); ?>".json_encode($data), true);
          }
      }
  2. 在模板通用檔案中呼叫
    • 通常加到 foot.htmlhead.html 檔案中:
      {pboot:php}
          $this->clean_session();
      {/pboot:php}

相關文章