Merge "Remove unused 'XMPGetInfo' and 'XMPGetResults' hooks"
[lhc/web/wiklou.git] / includes / config / ConfigFactory.php
index ff2f403..b20794b 100644 (file)
@@ -41,16 +41,37 @@ class ConfigFactory {
         */
        protected $configs = array();
 
+       /**
+        * @var ConfigFactory
+        */
+       private static $self;
+
+       /**
+        * @return ConfigFactory
+        */
        public static function getDefaultInstance() {
-               static $self = null;
-               if ( !$self ) {
-                       $self = new self;
+               if ( !self::$self ) {
+                       self::$self = new self;
                        global $wgConfigRegistry;
                        foreach ( $wgConfigRegistry as $name => $callback ) {
-                               $self->register( $name, $callback );
+                               self::$self->register( $name, $callback );
                        }
                }
-               return $self;
+               return self::$self;
+       }
+
+       /**
+        * Destroy the default instance
+        * Should only be called inside unit tests
+        * @throws MWException
+        * @codeCoverageIgnore
+        */
+       public static function destroyDefaultInstance() {
+               if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
+                       throw new MWException( __METHOD__ . ' was called outside of unit tests' );
+               }
+
+               self::$self = null;
        }
 
        /**