Add getSkinFactory to MediaWikiServices
authoraddshore <addshorewiki@gmail.com>
Tue, 19 Apr 2016 11:55:23 +0000 (12:55 +0100)
committeraddshore <addshorewiki@gmail.com>
Wed, 27 Apr 2016 10:18:56 +0000 (11:18 +0100)
Change-Id: Ife79aca542e0e85405976de7be7acebfa3359569

includes/MediaWikiServices.php
includes/ServiceWiring.php
includes/skins/SkinFactory.php
tests/phpunit/includes/MediaWikiServicesTest.php

index f0fe6e9..eee1d43 100644 (file)
@@ -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
index defe698..d53396f 100644 (file)
@@ -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
index 366862d..cc993aa 100644 (file)
@@ -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();
        }
 
        /**
index 0741445..f5c215b 100644 (file)
@@ -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 ],
                ];
        }