admin/app/model/newModel/common/CaChe.php

97 lines
2.6 KiB
PHP

<?php
/** ZJMall商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2022-2032 四川正今科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.zjphp.com
* 这不是自由软件!未经允许不得用于商业目或程序代码摘取及修改。
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布传播。
* 唯一发布渠道官方颁发授权证书,无纸质授权凭证书视为侵权行为。
* =========================================================
*/
namespace app\model\newModel\common;
use think\facade\Cache as c;
/**
* Common: 缓存 —— 列表数据储存专用
* Author: wu-hui
* Time: 2022/11/07 16:11
* Class CaChe
* @package app\model\newModel\common
*/
class CaChe{
/**
* Common: 生成缓存标签
* Author: wu-hui
* Time: 2022/11/07 16:00
* @param array $array
* @return string
*/
public static function tag(array $array){
// 删除公共内容
unset($array['app_type'],$array['app_type_name'],$array['token']);
// 生成标签
return md5(json_encode($array));
}
/**
* Common: 储存内容
* Author: wu-hui
* Time: 2022/11/07 16:17
* @param string $name
* @param string $value
* @param string $tag
*/
public static function set(string $name,string $value,string $tag){
self::cacheTag($name,$tag);
c::set($tag,$value);
}
/**
* Common: 获取缓存信息
* Author: wu-hui
* Time: 2022/11/07 16:19
* @param string $name
* @param string $tag
* @return mixed
*/
public static function get(string $name,string $tag){
return c::get($tag);
}
/**
* Common: 删除缓存
* Author: wu-hui
* Time: 2022/11/07 16:49
* @param $name
*/
public static function del($name){
$list = (array)c::get($name);
foreach($list as $tag){
c::delete($tag);
}
c::delete($name);
}
/**
* Common: 储存 缓存名称和键名称的关系
* Author: wu-hui
* Time: 2022/11/07 16:16
* @param $name
* @param $tag
*/
private static function cacheTag($name,$tag){
$tagList = c::get($name);
if(is_array($tagList)){
if(!in_array($tag,$tagList)){
$tagList[] = $tag;
c::set($name,$tagList);
}
}else{
c::set($name,[$tag]);
}
}
}