diff options
Diffstat (limited to 'includes/UserArray.php')
-rw-r--r-- | includes/UserArray.php | 83 |
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; - } -} |