summaryrefslogtreecommitdiff
path: root/includes/UserArray.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/UserArray.php')
-rw-r--r--includes/UserArray.php83
1 files changed, 10 insertions, 73 deletions
diff --git a/includes/UserArray.php b/includes/UserArray.php
index 1f55ef35..7da65827 100644
--- a/includes/UserArray.php
+++ b/includes/UserArray.php
@@ -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
@@ -22,7 +22,7 @@
abstract class UserArray implements Iterator {
/**
- * @param $res ResultWrapper
+ * @param ResultWrapper $res
* @return UserArrayFromResult
*/
static function newFromResult( $res ) {
@@ -37,7 +37,7 @@ abstract class UserArray implements Iterator {
}
/**
- * @param $ids array
+ * @param array $ids
* @return UserArrayFromResult
*/
static function newFromIDs( $ids ) {
@@ -47,83 +47,20 @@ 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 );
}
/**
- * @param $res
+ * @param ResultWrapper $res
* @return UserArrayFromResult
*/
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;
- }
-}