phprs\util\CheckableCache::get PHP Метод

get() публичный Метод

获取cache
public get ( string $name, boolean &$succeeded = null ) : mixed
$name string
$succeeded boolean
Результат mixed
    public function get($name, &$succeeded = null)
    {
        $name = $this->tag . $name;
        $res = $this->impl->get($name, $succeeded);
        if ($succeeded) {
            $succeeded = false;
            list($data, $ttl, $checker, $create_time) = $res;
            // 如果指定了checker, ttl代表每次检查的间隔时间, 0表示每次get都需要经过checker检查
            // 如果没有指定checker, ttl表示缓存过期时间, 为0表示永不过期
            if ($checker !== null) {
                if ($ttl == 0 || $create_time + $ttl < time()) {
                    $valid = false;
                    try {
                        if (is_callable($checker)) {
                            $valid = $checker($data, $create_time);
                        }
                    } catch (\Exception $e) {
                        Logger::warning('call checker failed with ' . $e->getTraceAsString());
                        $valid = false;
                    }
                    if (!$valid) {
                        Logger::debug("cache {$name} expired by checker");
                        $this->impl->del($name);
                        return null;
                    }
                }
            } else {
                if ($ttl != 0 && $create_time + $ttl < time()) {
                    Logger::debug("cache {$name} expired by ttl");
                    $this->impl->del($name);
                    return null;
                }
            }
            Logger::debug("get {$name} from cache, ttl={$ttl}, create_time={$create_time}, check=" . ($checker === null ? 'null' : get_class($checker)));
            $succeeded = true;
            return $data;
        }
        return null;
    }