diff options
Diffstat (limited to 'includes/UserArray.php')
-rw-r--r-- | includes/UserArray.php | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/includes/UserArray.php b/includes/UserArray.php index d48a4440..6cce48c0 100644 --- a/includes/UserArray.php +++ b/includes/UserArray.php @@ -1,6 +1,10 @@ <?php abstract class UserArray implements Iterator { + /** + * @param $res ResultWrapper + * @return UserArrayFromResult + */ static function newFromResult( $res ) { $userArray = null; if ( !wfRunHooks( 'UserArrayFromResult', array( &$userArray, $res ) ) ) { @@ -12,33 +16,52 @@ abstract class UserArray implements Iterator { return $userArray; } + /** + * @param $ids array + * @return UserArrayFromResult + */ static function newFromIDs( $ids ) { $ids = array_map( 'intval', (array)$ids ); // paranoia - if ( !$ids ) + if ( !$ids ) { // Database::select() doesn't like empty arrays return new ArrayIterator(array()); + } $dbr = wfGetDB( DB_SLAVE ); $res = $dbr->select( 'user', '*', array( 'user_id' => $ids ), __METHOD__ ); return self::newFromResult( $res ); } + /** + * @param $res + * @return UserArrayFromResult + */ protected static function newFromResult_internal( $res ) { - $userArray = new UserArrayFromResult( $res ); - return $userArray; + 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; @@ -47,6 +70,9 @@ class UserArrayFromResult extends UserArray { } } + /** + * @return int + */ public function count() { return $this->res->numRows(); } @@ -71,6 +97,9 @@ class UserArrayFromResult extends UserArray { $this->setCurrent( $this->res->current() ); } + /** + * @return bool + */ function valid() { return $this->current !== false; } |