ApiQueryBase: Fix addWhereFld for PHP 7.2
[lhc/web/wiklou.git] / includes / user / UserArray.php
index dddc850..f3a7f9f 100644 (file)
@@ -20,6 +20,8 @@
  * @file
  */
 
+use Wikimedia\Rdbms\ResultWrapper;
+
 abstract class UserArray implements Iterator {
        /**
         * @param ResultWrapper $res
@@ -38,7 +40,7 @@ abstract class UserArray implements Iterator {
 
        /**
         * @param array $ids
-        * @return UserArrayFromResult
+        * @return UserArrayFromResult|ArrayIterator
         */
        static function newFromIDs( $ids ) {
                $ids = array_map( 'intval', (array)$ids ); // paranoia
@@ -47,11 +49,14 @@ abstract class UserArray implements Iterator {
                        return new ArrayIterator( [] );
                }
                $dbr = wfGetDB( DB_REPLICA );
+               $userQuery = User::getQueryInfo();
                $res = $dbr->select(
-                       'user',
-                       User::selectFields(),
+                       $userQuery['tables'],
+                       $userQuery['fields'],
                        [ 'user_id' => array_unique( $ids ) ],
-                       __METHOD__
+                       __METHOD__,
+                       [],
+                       $userQuery['joins']
                );
                return self::newFromResult( $res );
        }
@@ -59,7 +64,7 @@ abstract class UserArray implements Iterator {
        /**
         * @since 1.25
         * @param array $names
-        * @return UserArrayFromResult
+        * @return UserArrayFromResult|ArrayIterator
         */
        static function newFromNames( $names ) {
                $names = array_map( 'strval', (array)$names ); // paranoia
@@ -68,11 +73,14 @@ abstract class UserArray implements Iterator {
                        return new ArrayIterator( [] );
                }
                $dbr = wfGetDB( DB_REPLICA );
+               $userQuery = User::getQueryInfo();
                $res = $dbr->select(
-                       'user',
-                       User::selectFields(),
+                       $userQuery['tables'],
+                       $userQuery['fields'],
                        [ 'user_name' => array_unique( $names ) ],
-                       __METHOD__
+                       __METHOD__,
+                       [],
+                       $userQuery['joins']
                );
                return self::newFromResult( $res );
        }