X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FServiceWiring.php;h=d21bcef332436ab91b73c1e8d1bc8920652a6c23;hb=92571d7c1a9c25604382f9c395e487e44cc442d5;hp=0496b67fc762f7532eb428cf6bbe601c735f7a8a;hpb=143af5c0bd90d6f584045ab36dbf5a5d918fd979;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index 0496b67fc7..1d0e606688 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -37,11 +37,17 @@ * 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; +use Wikimedia\ObjectFactory; return [ 'DBLoadBalancerFactory' => function ( MediaWikiServices $services ) { @@ -161,6 +167,11 @@ return [ $services->getReadOnlyMode() ); $store->setStatsdDataFactory( $services->getStatsdDataFactory() ); + + if ( $services->getMainConfig()->get( 'ReadOnlyWatchedItemStore' ) ) { + $store = new NoWriteWatchedItemStore( $store ); + } + return $store; }, @@ -439,14 +450,79 @@ 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; }, + '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() + ); + + $store->setLogger( LoggerFactory::getInstance( 'RevisionStore' ) ); + + $config = $services->getMainConfig(); + $store->setContentHandlerUseDB( $config->get( 'ContentHandlerUseDB' ) ); + + return $store; + }, + + 'RevisionLookup' => function ( MediaWikiServices $services ) { + return $services->getRevisionStore(); + }, + + 'RevisionFactory' => function ( MediaWikiServices $services ) { + return $services->getRevisionStore(); + }, + + '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 ) { + return $services->getBlobStoreFactory()->newSqlBlobStore(); + }, + + 'PreferencesFactory' => function ( MediaWikiServices $services ) { + global $wgContLang; + $authManager = AuthManager::singleton(); + $linkRenderer = $services->getLinkRendererFactory()->create(); + $config = $services->getMainConfig(); + return new DefaultPreferencesFactory( $config, $wgContLang, $authManager, $linkRenderer ); + }, + + 'HttpRequestFactory' => function ( MediaWikiServices $services ) { + return new \MediaWiki\Http\HttpRequestFactory(); + }, + /////////////////////////////////////////////////////////////////////////// // NOTE: When adding a service here, don't forget to add a getter function // in the MediaWikiServices class. The convenience getter should just call