* @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;
}
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 {