Cache.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace app\models\system;
  3. use crmeb\traits\ModelTrait;
  4. use crmeb\basic\BaseModel;
  5. /**
  6. * 数据缓存
  7. * Class Express
  8. * @package app\models\system
  9. */
  10. class Cache extends BaseModel
  11. {
  12. use ModelTrait;
  13. const EXPIRE = 0;
  14. /**
  15. * 模型名称
  16. * @var string
  17. */
  18. protected $name = 'cache';
  19. /**
  20. * 获取数据缓存
  21. * @param string $key
  22. * @return result
  23. */
  24. public static function getDbCache(string $key)
  25. {
  26. self::delectDeOverdueDbCache();
  27. $result = self::where('key',$key)->value('result');
  28. return json_decode($result,true);
  29. }
  30. /**
  31. * 设置数据缓存存在则更新,没有则写入
  32. * @param string $key
  33. * @param string | array $result
  34. * @param int $expire
  35. * @return void
  36. */
  37. public static function setDbCache(string $key,$result,$expire = self::EXPIRE)
  38. {
  39. self::delectDeOverdueDbCache();
  40. $addTime = $expire ? time() + $expire : 0;
  41. if(self::be(['key'=>$key])){
  42. return self::where(['key'=>$key])->update(['result'=>json_encode($result),'add_time'=>$addTime]);
  43. }else{
  44. return self::create(['key'=>$key,'result'=>json_encode($result),'add_time'=>$addTime]);
  45. }
  46. }
  47. /**
  48. * 删除失效缓存
  49. */
  50. public static function delectDeOverdueDbCache()
  51. {
  52. }
  53. /**
  54. * 删除某个缓存
  55. * @param string $key
  56. */
  57. public static function delectDbCache(string $key = '')
  58. {
  59. if($key)
  60. return self::where('key',$key)->delete();
  61. else
  62. return self::delete();
  63. }
  64. }