return $factory;
},
+ 'RevisionStore' => function ( MediaWikiServices $services ) {
+ /** @var SqlBlobStore $blobStore */
+ $blobStore = $services->getService( '_SqlBlobStore' );
+
+ $store = new RevisionStore(
+ $services->getDBLoadBalancer(),
+ $blobStore,
+ $services->getMainWANObjectCache()
+ );
+
+ $config = $services->getMainConfig();
+ $store->setContentHandlerUseDB( $config->get( 'ContentHandlerUseDB' ) );
+
+ return $store;
+ },
+
+ '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()
+ );
+
+ $config = $services->getMainConfig();
+ $store->setCompressRevisions( $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;
+ },
+
'ExternalStoreFactory' => function ( MediaWikiServices $services ) {
$config = $services->getMainConfig();