X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FServiceWiring.php;h=575970d23f2596e7288d28dd58f1d87957e83860;hb=e1aabf2f24aef20adc72db8a750704cbb33236c6;hp=75ce8eca9413a89525038c74002ea23f3bf608b9;hpb=09b6dddae2a21c8b03efae46539cca47086f5574;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index 75ce8eca94..575970d23f 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -42,6 +42,8 @@ use MediaWiki\Linker\LinkRendererFactory; use MediaWiki\Logger\LoggerFactory; use MediaWiki\MediaWikiServices; use MediaWiki\Shell\CommandFactory; +use MediaWiki\Storage\RevisionStore; +use MediaWiki\Storage\SqlBlobStore; return [ 'DBLoadBalancerFactory' => function ( MediaWikiServices $services ) { @@ -439,13 +441,103 @@ return [ 'filesize' => $config->get( 'MaxShellFileSize' ), ]; $cgroup = $config->get( 'ShellCgroup' ); + $restrictionMethod = $config->get( 'ShellRestrictionMethod' ); - $factory = new CommandFactory( $limits, $cgroup ); + $factory = new CommandFactory( $limits, $cgroup, $restrictionMethod ); $factory->setLogger( LoggerFactory::getInstance( 'exec' ) ); + $factory->logStderr(); 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(); + + return new ExternalStoreFactory( + $config->get( 'ExternalStores' ) + ); + }, + + '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->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; + }, + /////////////////////////////////////////////////////////////////////////// // NOTE: When adding a service here, don't forget to add a getter function // in the MediaWikiServices class. The convenience getter should just call