Exemplo n.º 1
0
 /**
  * 清理动态设置数据缓存
  * 注意这里清理使用到了缓存标签,而:
  * 文件 或 数据库 这类缓存系统均不支持缓存标签. 此外, 使用带有 "forever" 的缓存标签时, 挑选 memcached 这类缓存系统将获得最好的性能, 它会自动清除过期的纪录。
  *
  * @param string $type_name 动态设置分组名
  * @return void
  */
 public static function uncacheSetting($type_name = '')
 {
     if ($type_name === '') {
         $setting_types = SettingType::lists('name');
         //这里返回是数组
         foreach ($setting_types as $st) {
             static::uncacheSetting($st);
         }
     } else {
         Cache::forget($type_name);
         //为保险起见,这里通过key来清理掉分组名为$type_name的缓存,因为它支持file驱动的缓存
     }
 }
Exemplo n.º 2
0
 /**
  * 清理动态设置数据缓存
  * 注意这里清理使用到了缓存标签,而:
  * 文件 或 数据库 这类缓存系统均不支持缓存标签. 此外, 使用带有 "forever" 的缓存标签时, 挑选 memcached 这类缓存系统将获得最好的性能, 它会自动清除过期的纪录。
  *
  * @param string $type_name 动态设置分组名
  * @return void
  */
 public static function uncacheSetting($type_name = '')
 {
     if ($type_name === '') {
         if (Config::get('cache.driver') === 'memcached') {
             Cache::tags('setting')->flush();
             //清理所有动态设置(缓存标签为setting)缓存
         } else {
             $setting_types = SettingType::lists('name');
             //这里返回是数组
             foreach ($setting_types as $st) {
                 static::uncacheSetting($st);
             }
         }
     } else {
         if (Config::get('cache.driver') === 'memcached') {
             Cache::tags($type_name)->flush();
         }
         Cache::forget($type_name);
         //为保险起见,这里通过key来清理掉分组名为$type_name的缓存,因为它支持file驱动的缓存
     }
 }