Beispiel #1
0
        throw new UnexpectedValueException("Cache type \"{$id}\" is not present in \$wgObjectCaches.");
    }
    return \ObjectCache::newFromParams($mainConfig->get('ObjectCaches')[$id]);
}, 'MainWANObjectCache' => function (MediaWikiServices $services) {
    $mainConfig = $services->getMainConfig();
    $id = $mainConfig->get('MainWANCache');
    if (!isset($mainConfig->get('WANObjectCaches')[$id])) {
        throw new UnexpectedValueException("WAN cache type \"{$id}\" is not present in \$wgWANObjectCaches.");
    }
    $params = $mainConfig->get('WANObjectCaches')[$id];
    $objectCacheId = $params['cacheId'];
    if (!isset($mainConfig->get('ObjectCaches')[$objectCacheId])) {
        throw new UnexpectedValueException("Cache type \"{$objectCacheId}\" is not present in \$wgObjectCaches.");
    }
    $params['store'] = $mainConfig->get('ObjectCaches')[$objectCacheId];
    return \ObjectCache::newWANCacheFromParams($params);
}, 'LocalServerObjectCache' => function (MediaWikiServices $services) {
    $mainConfig = $services->getMainConfig();
    if (function_exists('apc_fetch')) {
        $id = 'apc';
    } elseif (function_exists('apcu_fetch')) {
        $id = 'apcu';
    } elseif (function_exists('xcache_get') && wfIniGetBool('xcache.var_size')) {
        $id = 'xcache';
    } elseif (function_exists('wincache_ucache_get')) {
        $id = 'wincache';
    } else {
        $id = CACHE_NONE;
    }
    if (!isset($mainConfig->get('ObjectCaches')[$id])) {
        throw new UnexpectedValueException("Cache type \"{$id}\" is not present in \$wgObjectCaches.");