From fe87b6575a1b8eb67ddb4fc705a4c55bade4b479 Mon Sep 17 00:00:00 2001 From: addshore Date: Tue, 19 Apr 2016 12:55:23 +0100 Subject: [PATCH] Add getSkinFactory to MediaWikiServices Change-Id: Ife79aca542e0e85405976de7be7acebfa3359569 --- includes/MediaWikiServices.php | 8 ++++++++ includes/ServiceWiring.php | 6 +++++- includes/skins/SkinFactory.php | 13 +++++-------- tests/phpunit/includes/MediaWikiServicesTest.php | 2 ++ 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/includes/MediaWikiServices.php b/includes/MediaWikiServices.php index f0fe6e97b6..eee1d430c9 100644 --- a/includes/MediaWikiServices.php +++ b/includes/MediaWikiServices.php @@ -12,6 +12,7 @@ use LoadBalancer; use MediaWiki\Services\ServiceContainer; use SiteLookup; use SiteStore; +use SkinFactory; /** * Service locator for MediaWiki core services. @@ -182,6 +183,13 @@ class MediaWikiServices extends ServiceContainer { return $this->getService( 'SearchEngineConfig' ); } + /** + * @return SkinFactory + */ + public function getSkinFactory() { + return $this->getService( 'SkinFactory' ); + } + /////////////////////////////////////////////////////////////////////////// // NOTE: When adding a service getter here, don't forget to add a test // case for it in MediaWikiServicesTest::provideGetters() and in diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index defe698c28..d53396f1a2 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -91,7 +91,11 @@ return [ // Create a search engine config from main config. $config = $services->getService( 'MainConfig' ); return new SearchEngineConfig( $config ); - } + }, + + 'SkinFactory' => function( MediaWikiServices $services ) { + return new SkinFactory(); + }, /////////////////////////////////////////////////////////////////////////// // NOTE: When adding a service here, don't forget to add a getter function diff --git a/includes/skins/SkinFactory.php b/includes/skins/SkinFactory.php index 366862da9a..cc993aaf9b 100644 --- a/includes/skins/SkinFactory.php +++ b/includes/skins/SkinFactory.php @@ -21,6 +21,8 @@ * @file */ +use MediaWiki\MediaWikiServices; + /** * Factory class to create Skin objects * @@ -42,16 +44,11 @@ class SkinFactory { private $displayNames = []; /** - * @var SkinFactory + * @deprecated in 1.27 + * @return SkinFactory */ - private static $self; - public static function getDefaultInstance() { - if ( !self::$self ) { - self::$self = new self; - } - - return self::$self; + return MediaWikiServices::getInstance()->getSkinFactory(); } /** diff --git a/tests/phpunit/includes/MediaWikiServicesTest.php b/tests/phpunit/includes/MediaWikiServicesTest.php index 0741445680..f5c215bfb3 100644 --- a/tests/phpunit/includes/MediaWikiServicesTest.php +++ b/tests/phpunit/includes/MediaWikiServicesTest.php @@ -29,6 +29,7 @@ class MediaWikiServicesTest extends PHPUnit_Framework_TestCase { 'SearchEngine' => [ 'newSearchEngine', SearchEngine::class ], 'SearchEngineFactory' => [ 'getSearchEngineFactory', SearchEngineFactory::class ], 'SearchEngineConfig' => [ 'getSearchEngineConfig', SearchEngineConfig::class ], + 'SkinFactory' => [ 'getSkinFactory', SkinFactory::class ], ]; } @@ -56,6 +57,7 @@ class MediaWikiServicesTest extends PHPUnit_Framework_TestCase { 'EventRelayerGroup' => [ 'EventRelayerGroup', EventRelayerGroup::class ], 'SearchEngineFactory' => [ 'SearchEngineFactory', SearchEngineFactory::class ], 'SearchEngineConfig' => [ 'SearchEngineConfig', SearchEngineConfig::class ], + 'SkinFactory' => [ 'SkinFactory', SkinFactory::class ], ]; } -- 2.20.1