1. 修改控制器文件
-
打开控制器文件: 打开
/apps/home/controller/ExtLabelController.php
文件。 -
找到现有函数: 找到以下代码段:
// 测试扩展单个标签 private function test() { $this->content = str_replace('{pboot:userip}', get_user_ip(), $this->content); }
-
添加清理函数: 在
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()) { ignore_user_abort(true); set_time_limit(7200); ob_start(); ob_end_flush(); flush(); $rs = path_delete(RUN_PATH . '/session'); if ($rs) { $data->expire_time = time() + 60 * 60 * 24; // 下一次清理时间 create_file(RUN_PATH . '/archive/session_ticket.php', "<?php exit();?>".json_encode($data), true); } } else { $data->expire_time = time() - 60 * 60 * 24; // 初始化清理时间 create_file(RUN_PATH . '/archive/session_ticket.php', "<?php exit();?>".json_encode($data), true); } }
2. 在模板文件中调用清理函数
-
选择模板文件: 选择一个常用的模板文件,如
foot.html
(通用底部)或head.html
(通用头部)。 -
添加调用代码: 在模板文件中添加如下代码:
<?php if (!isset($_GET['no_clean'])) { include_once APP_PATH . '/home/controller/ExtLabelController.php'; $controller = new \app\home\controller\ExtLabelController(); $controller->clean_session(); } ?>
3. 创建初始清理文件
- 创建初始清理文件: 在
runtime/archive
目录下创建一个初始清理文件session_ticket.php
,内容如下:<?php exit();?> {"expire_time":<?php echo time() - 60 * 60 * 24; ?>} // 初始化清理时间
4. 验证清理功能
-
访问网站: 访问网站,确保每次访问时都会触发清理脚本。
-
检查日志: 检查日志文件或监控系统,确保清理脚本按预期工作。
通过以上步骤,你可以实现 PbootCMS 的自动清理 runtime
缓存功能,确保系统稳定运行并释放空间。