* @param array $lbConf Config for LBFactory::__construct()
* @param ServiceOptions $options
* @param ConfiguredReadOnlyMode $readOnlyMode
- * @param BagOStuff $srvCace
+ * @param BagOStuff $srvCache
* @param BagOStuff $mainStash
* @param WANObjectCache $wanCache
* @return array
+ * @internal For use with service wiring
*/
public static function applyDefaultConfig(
array $lbConf,
ServiceOptions $options,
ConfiguredReadOnlyMode $readOnlyMode,
- BagOStuff $srvCace,
+ BagOStuff $srvCache,
BagOStuff $mainStash,
WANObjectCache $wanCache
) {
$serversCheck = [ $lbConf['serverTemplate'] ] ?? [];
}
- self::assertValidServerConfigs( $serversCheck, $options->get( 'DBname' ),
- $options->get( 'DBprefix' ) );
+ self::assertValidServerConfigs(
+ $serversCheck,
+ $options->get( 'DBname' ),
+ $options->get( 'DBprefix' )
+ );
- $lbConf = self::injectObjectCaches( $lbConf, $srvCace, $mainStash, $wanCache );
+ $lbConf = self::injectObjectCaches( $lbConf, $srvCache, $mainStash, $wanCache );
return $lbConf;
}
* @return array
*/
private static function getDbTypesWithSchemas() {
- return [ 'postgres', 'msssql' ];
+ return [ 'postgres' ];
}
/**
// Work around the reserved word usage in MediaWiki schema
'keywordTableMap' => [ 'user' => 'mwuser', 'text' => 'pagecontent' ]
];
- } elseif ( $server['type'] === 'oracle' ) {
- $server += [
- // Work around the reserved word usage in MediaWiki schema
- 'keywordTableMap' => [ 'user' => 'mwuser', 'text' => 'pagecontent' ]
- ];
- } elseif ( $server['type'] === 'mssql' ) {
- $server += [
- 'port' => $options->get( 'DBport' ),
- 'useWindowsAuth' => $options->get( 'DBWindowsAuthentication' )
- ];
}
if ( in_array( $server['type'], self::getDbTypesWithSchemas(), true ) ) {
$flags = DBO_DEFAULT;
$flags |= $options->get( 'DebugDumpSql' ) ? DBO_DEBUG : 0;
$flags |= $options->get( 'DebugLogFile' ) ? DBO_DEBUG : 0;
- if ( $server['type'] === 'oracle' ) {
- $flags |= $options->get( 'DBOracleDRCP' ) ? DBO_PERSISTENT : 0;
- }
$server += [
'tablePrefix' => $options->get( 'DBprefix' ),
private static function injectObjectCaches(
array $lbConf, BagOStuff $sCache, BagOStuff $mStash, WANObjectCache $wCache
) {
+ // Fallback if APC style caching is not an option
+ if ( $sCache instanceof EmptyBagOStuff ) {
+ $sCache = new HashBagOStuff( [ 'maxKeys' => 100 ] );
+ }
+
// Use APC/memcached style caching, but avoids loops with CACHE_DB (T141804)
if ( $sCache->getQoS( $sCache::ATTR_EMULATION ) > $sCache::QOS_EMULATION_SQL ) {
$lbConf['srvCache'] = $sCache;
/**
* @param array $servers
- * @param string $lbDB Local domain database name
- * @param string $lbTP Local domain prefix
+ * @param string $ldDB Local domain database name
+ * @param string $ldTP Local domain prefix
*/
private static function assertValidServerConfigs( array $servers, $ldDB, $ldTP ) {
foreach ( $servers as $server ) {
*
* @param array $config (e.g. $wgLBFactoryConf)
* @return string Class name
+ * @internal For use with service wiring
*/
public static function getLBFactoryClass( array $config ) {
// For configuration backward compatibility after removing
/**
* @param LBFactory $lbFactory
* @param string $dbType 'mysql', 'sqlite', etc.
+ * @internal For use with service wiring
*/
public static function setSchemaAliases( LBFactory $lbFactory, $dbType ) {
- if ( $dbType instanceof Config ) {
- // Before 1.34 this took a whole Config just to get $dbType
- wfDeprecated( __METHOD__ . ' with Config argument', '1.34' );
- $dbType = $dbType->get( 'DBtype' );
- }
if ( $dbType === 'mysql' ) {
/**
* When SQLite indexes were introduced in r45764, it was noted that
/**
* Log a database deprecation warning
* @param string $msg Deprecation message
+ * @internal For use with service wiring
*/
public static function logDeprecation( $msg ) {
global $wgDevelopmentWarnings;