Merge "Unroll array_map in ResourceLoaderFileModule::readStyleFiles"
[lhc/web/wiklou.git] / includes / UserArray.php
index 1f55ef3..38f0d9d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Classes to walk into a list of User objects.
+ * Class to walk into a list of User objects.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -47,8 +47,12 @@ abstract class UserArray implements Iterator {
                        return new ArrayIterator( array() );
                }
                $dbr = wfGetDB( DB_SLAVE );
-               $res = $dbr->select( 'user', '*', array( 'user_id' => $ids ),
-                       __METHOD__ );
+               $res = $dbr->select(
+                       'user',
+                       User::selectFields(),
+                       array( 'user_id' => array_unique( $ids ) ),
+                       __METHOD__
+               );
                return self::newFromResult( $res );
        }
 
@@ -59,71 +63,4 @@ abstract class UserArray implements Iterator {
        protected static function newFromResult_internal( $res ) {
                return new UserArrayFromResult( $res );
        }
-}
-
-class UserArrayFromResult extends UserArray {
-
-       /**
-        * @var ResultWrapper
-        */
-       var $res;
-       var $key, $current;
-
-       /**
-        * @param $res ResultWrapper
-        */
-       function __construct( $res ) {
-               $this->res = $res;
-               $this->key = 0;
-               $this->setCurrent( $this->res->current() );
-       }
-
-       /**
-        * @param  $row
-        * @return void
-        */
-       protected function setCurrent( $row ) {
-               if ( $row === false ) {
-                       $this->current = false;
-               } else {
-                       $this->current = User::newFromRow( $row );
-               }
-       }
-
-       /**
-        * @return int
-        */
-       public function count() {
-               return $this->res->numRows();
-       }
-
-       /**
-        * @return User
-        */
-       function current() {
-               return $this->current;
-       }
-
-       function key() {
-               return $this->key;
-       }
-
-       function next() {
-               $row = $this->res->next();
-               $this->setCurrent( $row );
-               $this->key++;
-       }
-
-       function rewind() {
-               $this->res->rewind();
-               $this->key = 0;
-               $this->setCurrent( $this->res->current() );
-       }
-
-       /**
-        * @return bool
-        */
-       function valid() {
-               return $this->current !== false;
-       }
-}
+}
\ No newline at end of file