* MediaWiki code base.
*/
+use MediaWiki\Auth\AuthManager;
use MediaWiki\Interwiki\ClassicInterwikiLookup;
use MediaWiki\Linker\LinkRendererFactory;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
+use MediaWiki\Preferences\DefaultPreferencesFactory;
use MediaWiki\Shell\CommandFactory;
+use MediaWiki\Storage\BlobStoreFactory;
use MediaWiki\Storage\RevisionStore;
use MediaWiki\Storage\SqlBlobStore;
$services->getReadOnlyMode()
);
$store->setStatsdDataFactory( $services->getStatsdDataFactory() );
+
+ if ( $services->getMainConfig()->get( 'ReadOnlyWatchedItemStore' ) ) {
+ $store = new NoWriteWatchedItemStore( $store );
+ }
+
return $store;
},
return $store;
},
+ 'BlobStoreFactory' => function ( MediaWikiServices $services ) {
+ global $wgContLang;
+ return new BlobStoreFactory(
+ $services->getDBLoadBalancer(),
+ $services->getMainWANObjectCache(),
+ $services->getMainConfig(),
+ $wgContLang
+ );
+ },
+
'BlobStore' => function ( MediaWikiServices $services ) {
return $services->getService( '_SqlBlobStore' );
},
'_SqlBlobStore' => function ( MediaWikiServices $services ) {
- global $wgContLang; // TODO: manage $wgContLang as a service
-
- $store = new SqlBlobStore(
- $services->getDBLoadBalancer(),
- $services->getMainWANObjectCache()
- );
+ return $services->getBlobStoreFactory()->newSqlBlobStore();
+ },
+ 'PreferencesFactory' => function ( MediaWikiServices $services ) {
+ global $wgContLang;
+ $authManager = AuthManager::singleton();
+ $linkRenderer = $services->getLinkRendererFactory()->create();
$config = $services->getMainConfig();
- $store->setCompressBlobs( $config->get( 'CompressRevisions' ) );
- $store->setCacheExpiry( $config->get( 'RevisionCacheExpiry' ) );
- $store->setUseExternalStore( $config->get( 'DefaultExternalStore' ) !== false );
-
- if ( $config->get( 'LegacyEncoding' ) ) {
- $store->setLegacyEncoding( $config->get( 'LegacyEncoding' ), $wgContLang );
- }
-
- return $store;
+ return new DefaultPreferencesFactory( $config, $wgContLang, $authManager, $linkRenderer );
},
///////////////////////////////////////////////////////////////////////////