DatabaseManager.php 1007 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace app\framework\Database;
  3. use app\common\facades\Setting;
  4. use Illuminate\Support\Facades\DB;
  5. class DatabaseManager extends \Illuminate\Database\DatabaseManager
  6. {
  7. public $cacheSelect = false;
  8. private $openCacheSelect;
  9. /**
  10. * @return bool
  11. */
  12. public function openCacheSelect()
  13. {
  14. if (!isset($this->isCacheSelect)) {
  15. // 获取设置时,不走缓存,避免死循环
  16. $temp = $this->cacheSelect;
  17. $this->cacheSelect = false;
  18. $this->openCacheSelect = Setting::get('shop.cache.select.open');
  19. $this->cacheSelect = $temp;
  20. }
  21. return $this->openCacheSelect;
  22. }
  23. public function __get($name)
  24. {
  25. if ($name == 'openCacheSelect') {
  26. return $this->openCacheSelect();
  27. }
  28. }
  29. public function refresh()
  30. {
  31. app()->forgetInstance('db');
  32. DB::clearResolvedInstance('db');
  33. (new DatabaseServiceProvider(app()))->boot();
  34. }
  35. }