コード例 #1
0
ファイル: Mail.class.php プロジェクト: yunsite/yablog
 /**
  * 删除后置操作
  *
  * @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);
             //模板文件
         }
     }
 }
コード例 #2
0
ファイル: Template.class.php プロジェクト: yunsite/yablog
 /**
  * 清除编译缓存
  *
  * @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);
         }
     }
 }
コード例 #3
0
ファイル: functions.php プロジェクト: yunsite/yablog
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];
}