* @file
*/
-define( 'MW_LC_VERSION', 2 );
-
/**
* Class for caching the contents of localisation files, Messages*.php
* and *.i18n.php.
* as grammatical transformation, is done by the caller.
*/
class LocalisationCache {
+ const VERSION = 2;
+
/** Configuration associative array */
private $conf;
*
* Returns true if any data from the extension array was used, false
* otherwise.
- * @param string $codeSequence
+ * @param array $codeSequence
* @param string $key
* @param mixed $value
* @param mixed $fallbackValue
# Add cache dependencies for any referenced globals
$deps['wgExtensionMessagesFiles'] = new GlobalDependency( 'wgExtensionMessagesFiles' );
$deps['wgMessagesDirs'] = new GlobalDependency( 'wgMessagesDirs' );
- $deps['version'] = new ConstantDependency( 'MW_LC_VERSION' );
+ $deps['version'] = new ConstantDependency( 'LocalisationCache::VERSION' );
# Add dependencies to the cache entry
$allData['deps'] = $deps;
private $readOnly = false;
public function get( $code, $key ) {
- if ( $this->writesDone && $this->dbw ) {
- $db = $this->dbw;
+ if ( $this->writesDone ) {
+ $db = wfGetDB( DB_MASTER );
} else {
$db = wfGetDB( DB_SLAVE );
}
throw new MWException( __METHOD__ . ": Invalid language \"$code\"" );
}
- // We must keep a separate connection to MySQL in order to avoid breaking
- // main transactions. However, SQLite deadlocks when using two connections.
- // @todo get this trick to work on PostgreSQL too
- if ( wfGetDB( DB_MASTER )->getType() == 'mysql' ) {
- $lb = wfGetLBFactory()->newMainLB();
- $this->dbw = $lb->getConnection( DB_MASTER );
- $this->dbw->clearFlag( DBO_TRX ); // auto-commit mode
- } else {
- $this->dbw = wfGetDB( DB_MASTER );
- }
+ $this->dbw = wfGetDB( DB_MASTER );
$this->currentLang = $code;
$this->batch = array();