/** * 清理动态设置数据缓存 * 注意这里清理使用到了缓存标签,而: * 文件 或 数据库 这类缓存系统均不支持缓存标签. 此外, 使用带有 "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驱动的缓存 } }
/** * 清理动态设置数据缓存 * 注意这里清理使用到了缓存标签,而: * 文件 或 数据库 这类缓存系统均不支持缓存标签. 此外, 使用带有 "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驱动的缓存 } }