*
* @see newFromId()
* @see newFromName()
- * @param DatabaseBase $db Db connection
+ * @param IDatabase $db Db connection
* @param string $database Database name
* @param string $name User name
* @param int $id User ID
*
* @param string $database
* @param bool $ignoreInvalidDB If true, don't check if $database is in $wgLocalDatabases
- * @return DatabaseBase|null If invalid selection
+ * @return IDatabase|null If invalid selection
*/
public static function getDB( $database, $ignoreInvalidDB = false ) {
global $wgDBname;
array( 'user_id' => $this->id ),
__METHOD__ );
- $cache = ObjectCache::getMainWANInstance();
$key = wfForeignMemcKey( $this->database, false, 'user', 'id', $this->id );
- $cache->delete( $key );
+ $this->db->onTransactionPreCommitOrIdle( function() use ( $key ) {
+ ObjectCache::getMainWANInstance()->delete( $key );
+ } );
}
}