X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FUser.php;h=eb2a2dc2ed61d7d0524a1efbf44e8056b8bc64ee;hb=67a20b6e434b0cd3e2d3b3555f14ae096e4e4132;hp=429ae0e2f317a5ccd56eb6ea65b0ef5ce6ac6e5c;hpb=8b823537386abfa9c9d6ec0680cc325cf2e6722d;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/User.php b/includes/User.php index 429ae0e2f3..eb2a2dc2ed 100644 --- a/includes/User.php +++ b/includes/User.php @@ -410,15 +410,14 @@ class User implements IDBAccessObject { * @since 1.25 */ protected function loadFromCache() { - global $wgMemc; - if ( $this->mId == 0 ) { $this->loadDefaults(); return false; } + $cache = ObjectCache::getMainWANInstance(); $key = wfMemcKey( 'user', 'id', $this->mId ); - $data = $wgMemc->get( $key ); + $data = $cache->get( $key ); if ( !is_array( $data ) || $data['mVersion'] < self::VERSION ) { // Object is expired return false; @@ -440,8 +439,6 @@ class User implements IDBAccessObject { * This method should not be called outside the User class */ public function saveToCache() { - global $wgMemc; - $this->load(); $this->loadGroups(); $this->loadOptions(); @@ -451,6 +448,8 @@ class User implements IDBAccessObject { return; } + $cache = ObjectCache::getMainWANInstance(); + // The cache needs good consistency due to its high TTL, so the user // should have been loaded from the master to avoid lag amplification. if ( !( $this->queryFlagsUsed & self::READ_LATEST ) ) { @@ -465,7 +464,7 @@ class User implements IDBAccessObject { $data['mVersion'] = self::VERSION; $key = wfMemcKey( 'user', 'id', $this->mId ); - $wgMemc->set( $key, $data ); + $cache->set( $key, $data ); } /** @name newFrom*() static factory methods */ @@ -2302,11 +2301,10 @@ class User implements IDBAccessObject { * Called implicitly from invalidateCache() and saveSettings(). */ public function clearSharedCache() { - global $wgMemc; - - $this->load(); - if ( $this->mId ) { - $wgMemc->delete( wfMemcKey( 'user', 'id', $this->mId ) ); + $id = $this->getId(); + if ( $id ) { + $cache = ObjectCache::getMainWANInstance(); + $cache->delete( wfMemcKey( 'user', 'id', $id ) ); } } @@ -2333,15 +2331,14 @@ class User implements IDBAccessObject { * @since 1.25 */ public function touch() { - global $wgMemc; - $this->load(); if ( $this->mId ) { + $this->mQuickTouched = $this->newTouchedTimestamp(); + + $cache = ObjectCache::getMainWANInstance(); $key = wfMemcKey( 'user-quicktouched', 'id', $this->mId ); - $timestamp = $this->newTouchedTimestamp(); - $wgMemc->set( $key, $timestamp ); - $this->mQuickTouched = $timestamp; + $cache->touchCheckKey( $key ); } } @@ -2359,16 +2356,16 @@ class User implements IDBAccessObject { * @return string TS_MW Timestamp */ public function getTouched() { - global $wgMemc; - $this->load(); if ( $this->mId ) { if ( $this->mQuickTouched === null ) { + $cache = ObjectCache::getMainWANInstance(); $key = wfMemcKey( 'user-quicktouched', 'id', $this->mId ); - $timestamp = $wgMemc->get( $key ); + + $timestamp = $cache->getCheckKeyTime( $key ); if ( $timestamp ) { - $this->mQuickTouched = $timestamp; + $this->mQuickTouched = wfTimestamp( TS_MW, $timestamp ); } else { # Set the timestamp to get HTTP 304 cache hits $this->touch();