Merge "Remove $wgAuth usage from wrapOldPasswords.php"
[lhc/web/wiklou.git] / includes / externalstore / ExternalStore.php
index ea04cc8..3beab29 100644 (file)
@@ -3,6 +3,8 @@
  * @defgroup ExternalStorage ExternalStorage
  */
 
+use MediaWiki\MediaWikiServices;
+
 /**
  * Interface for data storage in external repositories.
  *
@@ -51,17 +53,10 @@ class ExternalStore {
         * @param array $params Associative array of ExternalStoreMedium parameters
         * @return ExternalStoreMedium|bool The store class or false on error
         */
-       public static function getStoreObject( $proto, array $params = array() ) {
-               global $wgExternalStores;
-
-               if ( !$wgExternalStores || !in_array( $proto, $wgExternalStores ) ) {
-                       return false; // protocol not enabled
-               }
-
-               $class = 'ExternalStore' . ucfirst( $proto );
-
-               // Any custom modules should be added to $wgAutoLoadClasses for on-demand loading
-               return class_exists( $class ) ? new $class( $params ) : false;
+       public static function getStoreObject( $proto, array $params = [] ) {
+               return MediaWikiServices::getInstance()
+                       ->getExternalStoreFactory()
+                       ->getStoreObject( $proto, $params );
        }
 
        /**
@@ -72,7 +67,7 @@ class ExternalStore {
         * @return string|bool The text stored or false on error
         * @throws MWException
         */
-       public static function fetchFromURL( $url, array $params = array() ) {
+       public static function fetchFromURL( $url, array $params = [] ) {
                $parts = explode( '://', $url, 2 );
                if ( count( $parts ) != 2 ) {
                        return false; // invalid URL
@@ -99,14 +94,14 @@ class ExternalStore {
         *     or false on failure.
         */
        public static function batchFetchFromURLs( array $urls ) {
-               $batches = array();
+               $batches = [];
                foreach ( $urls as $url ) {
                        $scheme = parse_url( $url, PHP_URL_SCHEME );
                        if ( $scheme ) {
                                $batches[$scheme][] = $url;
                        }
                }
-               $retval = array();
+               $retval = [];
                foreach ( $batches as $proto => $batchedUrls ) {
                        $store = self::getStoreObject( $proto );
                        if ( $store === false ) {
@@ -136,7 +131,7 @@ class ExternalStore {
         * @return string|bool The URL of the stored data item, or false on error
         * @throws MWException
         */
-       public static function insert( $url, $data, array $params = array() ) {
+       public static function insert( $url, $data, array $params = [] ) {
                $parts = explode( '://', $url, 2 );
                if ( count( $parts ) != 2 ) {
                        return false; // invalid URL
@@ -166,7 +161,7 @@ class ExternalStore {
         * @return string|bool The URL of the stored data item, or false on error
         * @throws MWException
         */
-       public static function insertToDefault( $data, array $params = array() ) {
+       public static function insertToDefault( $data, array $params = [] ) {
                global $wgDefaultExternalStore;
 
                return self::insertWithFallback( (array)$wgDefaultExternalStore, $data, $params );
@@ -184,7 +179,7 @@ class ExternalStore {
         * @return string|bool The URL of the stored data item, or false on error
         * @throws MWException
         */
-       public static function insertWithFallback( array $tryStores, $data, array $params = array() ) {
+       public static function insertWithFallback( array $tryStores, $data, array $params = [] ) {
                $error = false;
                while ( count( $tryStores ) > 0 ) {
                        $index = mt_rand( 0, count( $tryStores ) - 1 );
@@ -224,6 +219,6 @@ class ExternalStore {
         * @throws MWException
         */
        public static function insertToForeignDefault( $data, $wiki ) {
-               return self::insertToDefault( $data, array( 'wiki' => $wiki ) );
+               return self::insertToDefault( $data, [ 'wiki' => $wiki ] );
        }
 }