/** * 删除后置操作 * * @author mrmsl <*****@*****.**> * @date 2013-06-07 09:03:17 * * @param array $pk_id 主键值 * * @return void 无返回值 */ protected function _afterDelete($pk_id) { $o = $this->getViewTemplate(); $data = $this->_getCache(); $path = THEME_PATH . 'mail/'; $suffix = C('TEMPLATE_SUFFIX'); foreach ($data as $id => $item) { if (in_array($id, $pk_id)) { $o->clearCache(CONTROLLER_NAME, $item['template_name']); //清除缓存 new_unlink($path . $item['template_name'] . $suffix); //模板文件 } } }
/** * 清除编译缓存 * * @author mrmsl <*****@*****.**> * @date 2013-04-12 15:16:23 * * @param string $controller 控制器。默认CONTROLLER_NAME。如果为空,则清除全部编译文件 * @param string $action 操作方法。默认ACTION_NAME。如果为空,则清除$controller所有编译文件 * * @return void 无返回值 */ public function clearCache($controller = CONTROLLER_NAME, $action = ACTION_NAME, $cache_id = '') { $controller = strtolower($controller ? $controller : CONTROLLER_NAME); $action = $action ? $action : ACTION_NAME; $compile_dir = $this->_compile_path . $controller . '/'; $cache_dir = $this->_cache_path . $controller . '/'; if ($action) { if (C('CLEAR_COMPILE_FILE') && is_file($filename = $compile_dir . "{$action}.php")) { //编译文件 unlink($filename); } is_file($filename = $cache_dir . $action . $cache_id . C('HTML_SUFFIX')) && unlink($filename); //缓存文件 if ($cache_id) { //同时清除多个 $cache_id = is_array($cache_id) ? $cache_id : explode(',', $cache_id); foreach ($cache_id as $v) { is_file($filename = $cache_dir . $action . $v . C('HTML_SUFFIX')) && unlink($filename); } } } else { if (C('CLEAR_COMPILE_FILE')) { foreach (glob($compile_dir . '*') as $filename) { //编译文件 new_unlink($filename); } } foreach (glob($cache_dir . '*') as $filename) { //缓存文件 is_file($filename) && unlink($filename); } } }
function F($name, $value = '', $path = null) { static $_cache = array(); $path = $path ? $path : CACHE_PATH; $filename = $path . $name . '.cache.php'; $cache_key = md5($filename); if ('' !== $value) { if (is_null($value)) { //删除缓存 return new_unlink($filename); } else { //缓存数据 $dir = dirname($filename); new_mkdir($dir); //目录不存在则创建 $_cache[$cache_key] = $value; return file_put_contents($filename, '<?php' . PHP_EOL . sprintf(AUTO_CREATE_COMMENT, new_date()) . PHP_EOL . 'return ' . var_export($value, true) . ';'); } } //获取缓存数据 if (array_key_exists($cache_key, $_cache)) { return $_cache[$cache_key]; } $_cache[$cache_key] = is_file($filename) ? include $filename : false; return $_cache[$cache_key]; }