Move MemcachedBagOStuff b/c logic to ObjectCache
authorAaron Schulz <aschulz@wikimedia.org>
Sat, 24 Oct 2015 21:47:19 +0000 (14:47 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Sat, 24 Oct 2015 22:09:28 +0000 (15:09 -0700)
Change-Id: Iedb173b00d543237b3e7560b8079b8d488e00d80

includes/objectcache/MemcachedBagOStuff.php
includes/objectcache/ObjectCache.php

index e9df6a3..749c6d3 100644 (file)
@@ -37,21 +37,9 @@ class MemcachedBagOStuff extends BagOStuff {
         * @return array
         */
        protected function applyDefaultParams( $params ) {
-               if ( !isset( $params['servers'] ) ) {
-                       $params['servers'] = $GLOBALS['wgMemCachedServers'];
-               }
-               if ( !isset( $params['debug'] ) ) {
-                       $params['debug'] = $GLOBALS['wgMemCachedDebug'];
-               }
-               if ( !isset( $params['persistent'] ) ) {
-                       $params['persistent'] = $GLOBALS['wgMemCachedPersistent'];
-               }
                if ( !isset( $params['compress_threshold'] ) ) {
                        $params['compress_threshold'] = 1500;
                }
-               if ( !isset( $params['timeout'] ) ) {
-                       $params['timeout'] = $GLOBALS['wgMemCachedTimeout'];
-               }
                if ( !isset( $params['connect_timeout'] ) ) {
                        $params['connect_timeout'] = 0.5;
                }
index 151bb06..f21b797 100644 (file)
@@ -178,8 +178,26 @@ class ObjectCache {
                        return call_user_func( $params['factory'], $params );
                } elseif ( isset( $params['class'] ) ) {
                        $class = $params['class'];
-                       if ( $class === 'MultiWriteBagOStuff' && !isset( $params['asyncHandler'] ) ) {
-                               $params['asyncHandler'] = 'DeferredUpdates::addCallableUpdate';
+                       // Automatically set the 'async' update handler
+                       if ( $class === 'MultiWriteBagOStuff' ) {
+                               $params['asyncHandler'] = isset( $params['asyncHandler'] )
+                                       ? $params['asyncHandler']
+                                       : 'DeferredUpdates::addCallableUpdate';
+                       }
+                       // Do b/c logic for MemcachedBagOStuff
+                       if ( is_subclass_of( $class, 'MemcachedBagOStuff' ) ) {
+                               if ( !isset( $params['servers'] ) ) {
+                                       $params['servers'] = $GLOBALS['wgMemCachedServers'];
+                               }
+                               if ( !isset( $params['debug'] ) ) {
+                                       $params['debug'] = $GLOBALS['wgMemCachedDebug'];
+                               }
+                               if ( !isset( $params['persistent'] ) ) {
+                                       $params['persistent'] = $GLOBALS['wgMemCachedPersistent'];
+                               }
+                               if ( !isset( $params['timeout'] ) ) {
+                                       $params['timeout'] = $GLOBALS['wgMemCachedTimeout'];
+                               }
                        }
                        return new $class( $params );
                } else {