Gdn_Cache::fallback PHP Method

fallback() protected method

protected fallback ( string $Key, array $Options ) : mixed
$Key string Cache key.
$Options array
return mixed
    protected function fallback($Key, $Options)
    {
        $Fallback = val(Gdn_Cache::FEATURE_FALLBACK, $Options, null);
        if (is_null($Fallback)) {
            return Gdn_Cache::CACHEOP_FAILURE;
        }
        $FallbackType = array_shift($Fallback);
        switch ($FallbackType) {
            case 'query':
                $QueryFallbackField = array_shift($Fallback);
                $QueryFallbackCode = array_shift($Fallback);
                $FallbackResult = Gdn::database()->query($QueryFallbackCode);
                if ($FallbackResult->numRows()) {
                    if (!is_null($QueryFallbackField)) {
                        $FallbackResult = val($QueryFallbackField, $FallbackResult->firstRow(DATASET_TYPE_ARRAY));
                    } else {
                        $FallbackResult = $FallbackResult->resultArray();
                    }
                }
                break;
            case 'callback':
                $CallbackFallbackMethod = array_shift($Fallback);
                $CallbackFallbackArgs = $Fallback;
                $FallbackResult = call_user_func_array($CallbackFallbackMethod, $CallbackFallbackArgs);
                break;
        }
        Gdn::cache()->store($Key, $FallbackResult);
        return $FallbackResult;
    }