X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fcache%2FCacheHelper.php;h=d1261a807624d648ca5b007fc96303bf91fe062a;hb=4051970d03686d0f05516659a35733cd5325eb37;hp=d7669eb1b9e580e222defc5818c1d9b33dcd5066;hpb=ae506d2441d5cc15b7fa67974bfb2237f389e732;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/cache/CacheHelper.php b/includes/cache/CacheHelper.php index d7669eb1b9..d1261a8076 100644 --- a/includes/cache/CacheHelper.php +++ b/includes/cache/CacheHelper.php @@ -82,9 +82,9 @@ class CacheHelper implements ICacheHelper { * Function that gets called when initialization is done. * * @since 1.20 - * @var callable + * @var callable|null */ - protected $onInitHandler = false; + protected $onInitHandler; /** * Elements to build a cache key with. @@ -183,7 +183,7 @@ class CacheHelper implements ICacheHelper { $this->hasCached = is_array( $cachedChunks ); $this->cachedChunks = $this->hasCached ? $cachedChunks : []; - if ( $this->onInitHandler !== false ) { + if ( $this->onInitHandler !== null ) { call_user_func( $this->onInitHandler, $this->hasCached ); } } @@ -221,13 +221,11 @@ class CacheHelper implements ICacheHelper { } else { $value = array_shift( $this->cachedChunks ); } + } elseif ( array_key_exists( $key, $this->cachedChunks ) ) { + $value = $this->cachedChunks[$key]; + unset( $this->cachedChunks[$key] ); } else { - if ( array_key_exists( $key, $this->cachedChunks ) ) { - $value = $this->cachedChunks[$key]; - unset( $this->cachedChunks[$key] ); - } else { - wfWarn( "There is no item with key '$key' in this->cachedChunks in " . __METHOD__ ); - } + wfWarn( "There is no item with key '$key' in this->cachedChunks in " . __METHOD__ ); } } else { if ( !is_array( $args ) ) { @@ -290,7 +288,9 @@ class CacheHelper implements ICacheHelper { throw new MWException( 'No cache key set, so cannot obtain or save the CacheHelper values.' ); } - return wfMemcKey( ...array_values( $this->cacheKey ) ); + return ObjectCache::getLocalClusterInstance()->makeKey( + ...array_values( $this->cacheKey ) + ); } /**