From 9afd767226bf9a3e55e1ae59be2ab325921e320d Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Fri, 2 Oct 2015 12:01:38 -0700 Subject: [PATCH] objectcache: Implement 'fallback' param for newAccelerator() This way it can be used in $wgObjectCaches using 'factory', whilst also specifying a fallback. Change-Id: I8d4de1e2a394e7e915513fae91808fe32a21f75d --- includes/objectcache/ObjectCache.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/includes/objectcache/ObjectCache.php b/includes/objectcache/ObjectCache.php index 601910578f..0d40052074 100644 --- a/includes/objectcache/ObjectCache.php +++ b/includes/objectcache/ObjectCache.php @@ -185,14 +185,24 @@ class ObjectCache { * This will look for any APC style server-local cache. * A fallback cache can be specified if none is found. * - * @param array $params [optional] + * // Direct calls + * ObjectCache::newAccelerator( $fallbackType ); + * + * // From $wgObjectCaches via newFromParams() + * ObjectCache::newAccelerator( array( 'fallback' => $fallbackType ) ); + * + * @param array $params [optional] Array key 'fallback' for $fallback. * @param int|string $fallback Fallback cache, e.g. (CACHE_NONE, "hash") (since 1.24) * @return BagOStuff * @throws MWException */ public static function newAccelerator( $params = array(), $fallback = null ) { - if ( !is_array( $params ) && $fallback === null ) { - $fallback = $params; + if ( $fallback === null ) { + if ( isset( $params['fallback'] ) ) { + $fallback = $params['fallback']; + } elseif ( !is_array( $params ) ) { + $fallback = $params; + } } if ( function_exists( 'apc_fetch' ) ) { $id = 'apc'; -- 2.20.1