From 97620165ad43bb55d87a6410b161ec0e8a611e0f Mon Sep 17 00:00:00 2001 From: Kunal Mehta Date: Tue, 16 Aug 2016 13:47:43 -0700 Subject: [PATCH] Add Parser to MediaWikiServices So we can avoid using $wgParser everywhere. Change-Id: Ie5fd2c523ceec8cc2656e749928f38909dc4bdf1 --- includes/MediaWikiServices.php | 9 +++++++++ includes/ServiceWiring.php | 5 +++++ includes/Setup.php | 4 +++- tests/phpunit/includes/MediaWikiServicesTest.php | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) 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 ], -- 2.20.1