protected $mServer, $mUser, $mPassword, $mConn = null, $mDBname;
protected $mOpened = false;
- protected $mFailFunction;
protected $mTablePrefix;
protected $mFlags;
protected $mTrxLevel = 0;
#------------------------------------------------------------------------------
# These optionally set a variable and return the previous state
- /**
- * Fail function, takes a Database as a parameter
- * Set to false for default, 1 for ignore errors
- */
- function failFunction( $function = null ) {
- return wfSetVar( $this->mFailFunction, $function );
- }
-
/**
* Boolean, controls output of large amounts of debug information
*/
* @param $user String: database user name
* @param $password String: database user password
* @param $dbName String: database name
- * @param $failFunction
* @param $flags
* @param $tablePrefix String: database table prefixes. By default use the prefix gave in LocalSettings.php
*/
function __construct( $server = false, $user = false, $password = false, $dbName = false,
- $failFunction = false, $flags = 0, $tablePrefix = 'get from global' ) {
+ $flags = 0, $tablePrefix = 'get from global' ) {
global $wgOut, $wgDBprefix, $wgCommandLineMode;
# Can't get a reference if it hasn't been set yet
$wgOut = null;
}
- $this->mFailFunction = $failFunction;
$this->mFlags = $flags;
if ( $this->mFlags & DBO_DEFAULT ) {
* @param $user String: database user name
* @param $password String: database user password
* @param $dbName String: database name
- * @param failFunction
* @param $flags
*/
- static function newFromParams( $server, $user, $password, $dbName, $failFunction = false, $flags = 0 )
+ static function newFromParams( $server, $user, $password, $dbName, $flags = 0 )
{
wfDeprecated( __METHOD__ );
- return new DatabaseMysql( $server, $user, $password, $dbName, $failFunction, $flags );
+ return new DatabaseMysql( $server, $user, $password, $dbName, $flags );
}
/**
* Usually aborts on failure
- * If the failFunction is set to a non-zero integer, returns success
* @param $server String: database server host
* @param $user String: database user name
* @param $password String: database user password
$error = $myError;
}
- if ( $this->mFailFunction ) {
- # Legacy error handling method
- if ( !is_int( $this->mFailFunction ) ) {
- $ff = $this->mFailFunction;
- $ff( $this, $error );
- }
- } else {
- # New method
- throw new DBConnectionError( $this, $error );
- }
+ throw new DBConnectionError( $this, $error );
}
/**
}
function getHTML() {
- global $wgLang, $wgMessageCache, $wgUseFileCache, $wgShowDBErrorBacktrace;
+ global $wgLang, $wgMessageCache, $wgUseFileCache, $wgShowDBErrorBacktrace, $wgContLang;
$sorry = 'Sorry! This site is experiencing technical difficulties.';
$again = 'Try waiting a few minutes and reloading.';
$cache = $this->fileCachedPage();
# Cached version on file system?
if( $cache !== null ) {
+ # Adding support for RTL languages
+ if ( $wgContLang !== null ) {
+ if ( $wgContLang->isRTL() ) {
+ $cache = str_replace( '<html>', '<html style="direction:rtl;">', $cache );
+ }
+ }
+
# Hack: extend the body for error messages
$cache = str_replace( array('</html>','</body>'), '', $cache );
# Add cache notice...
protected $mServer, $mUser, $mPassword, $mConn = null, $mDBname;
protected $mOut, $mOpened = false;
- protected $mFailFunction;
protected $mTablePrefix;
protected $mFlags;
protected $mTrxLevel = 0;
* These can be safely inherited
*
* Getter/Setter: (18)
- * failFunction
* bufferResults
* ignoreErrors
* trxLevel
* @param $user String: username
* @param $password String: password
* @param $dbName String: database name on the server
- * @param $failFunction Callback (optional)
* @param $flags Integer: database behaviour flags (optional, unused)
* @param $schema String
*/
public function DatabaseIbm_db2($server = false, $user = false, $password = false,
- $dbName = false, $failFunction = false, $flags = 0,
+ $dbName = false, $flags = 0,
$schema = self::USE_GLOBAL )
{
-
global $wgOut, $wgDBmwschema;
# Can't get a reference if it hasn't been set yet
if ( !isset( $wgOut ) ) {
$wgOut = null;
}
$this->mOut =& $wgOut;
- $this->mFailFunction = $failFunction;
$this->mFlags = DBO_TRX | $flags;
if ( $schema == self::USE_GLOBAL ) {
* @param $user String: username
* @param $password String
* @param $dbName String: database name on the server
- * @param $failFunction Callback (optional)
* @param $flags Integer: database behaviour flags (optional, unused)
* @return DatabaseIbm_db2 object
*/
- static function newFromParams( $server, $user, $password, $dbName, $failFunction = false, $flags = 0)
- {
- return new DatabaseIbm_db2( $server, $user, $password, $dbName, $failFunction, $flags );
+ static function newFromParams( $server, $user, $password, $dbName, $flags = 0) {
+ return new DatabaseIbm_db2( $server, $user, $password, $dbName, $flags );
}
/**
var $mAffectedRows = NULL;
function __construct( $server = false, $user = false, $password = false, $dbName = false,
- $failFunction = false, $flags = 0 )
+ $flags = 0 )
{
- $this->mFailFunction = $failFunction;
$this->mFlags = $flags;
$this->open( $server, $user, $password, $dbName );
-
}
function cascadingDeletes() {
return false;
}
- static function newFromParams( $server, $user, $password, $dbName, $failFunction = false, $flags = 0 )
- {
- return new DatabaseMssql( $server, $user, $password, $dbName, $failFunction, $flags );
+ static function newFromParams( $server, $user, $password, $dbName, $flags = 0 ) {
+ return new DatabaseMssql( $server, $user, $password, $dbName, $flags );
}
/**
* Usually aborts on failure
- * If the failFunction is set to a non-zero integer, returns success
*/
function open( $server, $user, $password, $dbName ) {
# Test for driver support, to avoid suppressed fatal error
var $mFieldInfoCache = array();
function __construct( $server = false, $user = false, $password = false, $dbName = false,
- $failFunction = false, $flags = 0, $tablePrefix = 'get from global' )
+ $flags = 0, $tablePrefix = 'get from global' )
{
$tablePrefix = $tablePrefix == 'get from global' ? $tablePrefix : strtoupper( $tablePrefix );
- parent::__construct( $server, $user, $password, $dbName, $failFunction, $flags, $tablePrefix );
+ parent::__construct( $server, $user, $password, $dbName, $flags, $tablePrefix );
wfRunHooks( 'DatabaseOraclePostInit', array( &$this ) );
}
return true;
}
- static function newFromParams( $server, $user, $password, $dbName, $failFunction = false, $flags = 0 )
- {
- return new DatabaseOracle( $server, $user, $password, $dbName, $failFunction, $flags );
+ static function newFromParams( $server, $user, $password, $dbName, $flags = 0 ){
+ return new DatabaseOracle( $server, $user, $password, $dbName, $flags );
}
/**
* Usually aborts on failure
- * If the failFunction is set to a non-zero integer, returns success
*/
function open( $server, $user, $password, $dbName ) {
if ( !function_exists( 'oci_connect' ) ) {
var $mAffectedRows = null;
function DatabasePostgres($server = false, $user = false, $password = false, $dbName = false,
- $failFunction = false, $flags = 0 )
+ $flags = 0 )
{
-
- $this->mFailFunction = $failFunction;
$this->mFlags = $flags;
$this->open( $server, $user, $password, $dbName);
-
}
function getType() {
return $this->numRows($res = $this->doQuery($SQL));
}
- static function newFromParams( $server, $user, $password, $dbName, $failFunction = false, $flags = 0)
- {
- return new DatabasePostgres( $server, $user, $password, $dbName, $failFunction, $flags );
+ static function newFromParams( $server, $user, $password, $dbName, $flags = 0) {
+ return new DatabasePostgres( $server, $user, $password, $dbName, $flags );
}
/**
* Usually aborts on failure
- * If the failFunction is set to a non-zero integer, returns success
*/
function open( $server, $user, $password, $dbName ) {
# Test for Postgres support, to avoid suppressed fatal error
wfDebug( "DB connection error\n" );
wfDebug( "Server: $server, Database: $dbName, User: $user, Password: " . substr( $password, 0, 3 ) . "...\n" );
wfDebug( $this->lastError()."\n" );
- if ( !$this->mFailFunction ) {
- throw new DBConnectionError( $this, $phpError );
- } else {
- return false;
- }
+ return false;
}
$this->mOpened = true;
* Constructor.
* Parameters $server, $user and $password are not used.
*/
- function __construct( $server = false, $user = false, $password = false, $dbName = false, $failFunction = false, $flags = 0 ) {
+ function __construct( $server = false, $user = false, $password = false, $dbName = false, $flags = 0 ) {
global $wgSharedDB;
- $this->mFailFunction = $failFunction;
$this->mFlags = $flags;
$this->mName = $dbName;
*/
function implicitGroupby() { return false; }
- static function newFromParams( $server, $user, $password, $dbName, $failFunction = false, $flags = 0 ) {
- return new DatabaseSqlite( $server, $user, $password, $dbName, $failFunction, $flags );
+ static function newFromParams( $server, $user, $password, $dbName, $flags = 0 ) {
+ return new DatabaseSqlite( $server, $user, $password, $dbName, $flags );
}
/** Open an SQLite database and return a resource handle to it
}
if ( $this->mConn === false ) {
wfDebug( "DB connection error: $err\n" );
- if ( !$this->mFailFunction ) {
- throw new DBConnectionError( $this, $err );
- } else {
- return false;
- }
-
+ return false;
}
$this->mOpened = !!$this->mConn;
# set error codes only, don't raise exceptions
*/
class LoadBalancer {
/* private */ var $mServers, $mConns, $mLoads, $mGroupLoads;
- /* private */ var $mFailFunction, $mErrorConnection;
+ /* private */ var $mErrorConnection;
/* private */ var $mReadIndex, $mAllowLagged;
/* private */ var $mWaitForPos, $mWaitTimeout;
/* private */ var $mLaggedSlaveMode, $mLastError = 'Unknown error';
/**
* @param $params Array with keys:
* servers Required. Array of server info structures.
- * failFunction Deprecated, use exceptions instead.
* masterWaitTimeout Replication lag wait timeout
* loadMonitor Name of a class used to fetch server lag and load.
*/
}
$this->mServers = $params['servers'];
- if ( isset( $params['failFunction'] ) ) {
- $this->mFailFunction = $params['failFunction'];
- } else {
- $this->mFailFunction = false;
- }
if ( isset( $params['waitTimeout'] ) ) {
$this->mWaitTimeout = $params['waitTimeout'];
} else {
}
}
- static function newFromParams( $servers, $failFunction = false, $waitTimeout = 10 )
+ static function newFromParams( $servers, $waitTimeout = 10 )
{
- return new LoadBalancer( $servers, $failFunction, $waitTimeout );
+ return new LoadBalancer( $servers, $waitTimeout );
}
/**
// No last connection, probably due to all servers being too busy
wfLogDBError( "LB failure with no last connection\n" );
$conn = new Database;
- if ( $this->mFailFunction ) {
- $conn->failFunction( $this->mFailFunction );
- $conn->reportConnectionError( $this->mLastError );
- } else {
- // If all servers were busy, mLastError will contain something sensible
- throw new DBConnectionError( $conn, $this->mLastError );
- }
+
+ // If all servers were busy, mLastError will contain something sensible
+ throw new DBConnectionError( $conn, $this->mLastError );
} else {
- if ( $this->mFailFunction ) {
- $conn->failFunction( $this->mFailFunction );
- } else {
- $conn->failFunction( false );
- }
+
$server = $conn->getProperty( 'mServer' );
wfLogDBError( "Connection error: {$this->mLastError} ({$server})\n" );
$conn->reportConnectionError( "{$this->mLastError} ({$server})" );
class DatabaseMock extends DatabaseBase {
function __construct( $server = false, $user = false, $password = false, $dbName = false,
- $failFunction = false, $flags = 0, $tablePrefix = 'get from global' )
+ $flags = 0, $tablePrefix = 'get from global' )
{
$this->mConn = true;
$this->mOpened = true;