SiteSettingCache.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace app\common\modules\site;
  3. class SiteSettingCache
  4. {
  5. public function load()
  6. {
  7. $setting = \app\common\models\SiteSetting::first();
  8. if (!$setting) {
  9. $setting = \app\common\models\SiteSetting::create(['value'=>[]]);
  10. }
  11. \Cache::put('siteSetting', $setting->value?:[], 10);
  12. return true;
  13. }
  14. public function get()
  15. {
  16. $cache = \Cache::get('siteSetting');
  17. if (!isset($cache)) {
  18. $this->load();
  19. }
  20. return \Cache::get('siteSetting');
  21. }
  22. public function put($key, $value)
  23. {
  24. // 获取修改后的全部设置
  25. $value = yz_array_set($this->get(), $key, $value);
  26. // 保存到缓存
  27. \Cache::put('siteSetting', $value, 10);
  28. // 同步到数据库
  29. $setting = \app\common\models\SiteSetting::first();
  30. if (!$setting) {
  31. $setting = \app\common\models\SiteSetting::create();
  32. }
  33. $setting->value = $value;
  34. return $setting->save();
  35. }
  36. }