123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
-
-
-
-
-
-
-
-
-
-
-
-
-
- namespace libs;
-
- use think\Db;
- use think\facade\Cache;
-
- class Cache_factory
- {
- protected static $instance = null;
-
-
-
- public static function instance($options = [])
- {
- if (is_null(self::$instance)) {
- self::$instance = new self($options);
- }
- return self::$instance;
- }
-
-
-
- public function get($name)
- {
- $cache = Cache::get($name);
- if (!empty($cache)) {
- return $cache;
- } else {
-
- return $this->runUpdate($name);
- }
- return null;
- }
-
-
-
- public function set($name, $value, $expire = null)
- {
- return Cache::set($name, $value, $expire);
- }
-
-
-
- public function remove($name)
- {
- return Cache::rm($name, null);
- }
-
-
-
- public function runUpdate($name)
- {
- if (empty($name)) {
- return false;
- }
-
- $cacheList = Db::name('cache')->where(array('key' => $name))->order(array('id' => 'DESC'))->select();
- if (empty($cacheList)) {
- return false;
- }
- foreach ($cacheList as $config) {
- if (empty($config)) {
- $this->error = '没有可需要更新的缓存信息!';
- return false;
- }
- $mo = '';
- if (empty($config['module'])) {
- $mo = "common/{$config['model']}";
- } else {
- $mo = "{$config['module']}/{$config['model']}";
- }
- $model = model($mo);
- if ($config['action']) {
- $action = $config['action'];
- $model->$action();
- }
- }
-
- return Cache::get($name);
- }
-
- }
|