From: Kunal Mehta Date: Tue, 16 Aug 2016 20:47:43 +0000 (-0700) Subject: Add Parser to MediaWikiServices X-Git-Tag: 1.31.0-rc.0~5009^2 X-Git-Url: http://git.cyclocoop.org/data/Luca_Pacioli_%28Gemaelde%29.jpeg?a=commitdiff_plain;h=97620165ad43bb55d87a6410b161ec0e8a611e0f;p=lhc%2Fweb%2Fwiklou.git Add Parser to MediaWikiServices So we can avoid using $wgParser everywhere. Change-Id: Ie5fd2c523ceec8cc2656e749928f38909dc4bdf1 --- diff --git a/includes/MediaWikiServices.php b/includes/MediaWikiServices.php index 7f94ced2c9..2171a5d5eb 100644 --- a/includes/MediaWikiServices.php +++ b/includes/MediaWikiServices.php @@ -21,6 +21,7 @@ use MediaWiki\Services\NoSuchServiceException; use MWException; use MimeAnalyzer; use ObjectCache; +use Parser; use ProxyLookup; use SearchEngine; use SearchEngineConfig; @@ -556,6 +557,14 @@ class MediaWikiServices extends ServiceContainer { return $this->getService( 'ProxyLookup' ); } + /** + * @since 1.28 + * @return Parser + */ + public function getParser() { + return $this->getService( 'Parser' ); + } + /** * @since 1.28 * @return GenderCache diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index 49183e5705..a427f5cc0e 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -207,6 +207,11 @@ return [ ); }, + 'Parser' => function( MediaWikiServices $services ) { + $conf = $services->getMainConfig()->get( 'ParserConf' ); + return ObjectFactory::constructClassInstance( $conf['class'], [ $conf ] ); + }, + 'LinkCache' => function( MediaWikiServices $services ) { return new LinkCache( $services->getTitleFormatter(), diff --git a/includes/Setup.php b/includes/Setup.php index 7cda14cd35..357c76d8d1 100644 --- a/includes/Setup.php +++ b/includes/Setup.php @@ -818,7 +818,9 @@ $wgOut = RequestContext::getMain()->getOutput(); // BackCompat /** * @var Parser $wgParser */ -$wgParser = new StubObject( 'wgParser', $wgParserConf['class'], [ $wgParserConf ] ); +$wgParser = new StubObject( 'wgParser', function () { + return MediaWikiServices::getInstance()->getParser(); +} ); /** * @var Title $wgTitle diff --git a/tests/phpunit/includes/MediaWikiServicesTest.php b/tests/phpunit/includes/MediaWikiServicesTest.php index 0ff903f0ec..c9c50c0d67 100644 --- a/tests/phpunit/includes/MediaWikiServicesTest.php +++ b/tests/phpunit/includes/MediaWikiServicesTest.php @@ -314,6 +314,7 @@ class MediaWikiServicesTest extends MediaWikiTestCase { 'WatchedItemQueryService' => [ 'WatchedItemQueryService', WatchedItemQueryService::class ], 'CryptRand' => [ 'CryptRand', CryptRand::class ], 'MediaHandlerFactory' => [ 'MediaHandlerFactory', MediaHandlerFactory::class ], + 'Parser' => [ 'Parser', Parser::class ], 'GenderCache' => [ 'GenderCache', GenderCache::class ], 'LinkCache' => [ 'LinkCache', LinkCache::class ], 'LinkRenderer' => [ 'LinkRenderer', LinkRenderer::class ],