X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fsearch%2FSqlSearchResultSet.php;h=022dc0a64371c0e9b3e70f7af6fd320604c0ddcb;hb=b16e6343a0b3e650a3b9cc4cfd9ab0a75def98a3;hp=53d09e82b1017858c42df0b2d1d4679fdeed77bf;hpb=f7668403e0218e05dadfd7e0efed63bcb7953b7a;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/search/SqlSearchResultSet.php b/includes/search/SqlSearchResultSet.php index 53d09e82b1..022dc0a643 100644 --- a/includes/search/SqlSearchResultSet.php +++ b/includes/search/SqlSearchResultSet.php @@ -7,8 +7,11 @@ use Wikimedia\Rdbms\ResultWrapper; * @ingroup Search */ class SqlSearchResultSet extends SearchResultSet { + /** @var ResultWrapper Result object from database */ protected $resultSet; + /** @var string Requested search query */ protected $terms; + /** @var int|null Total number of hits for $terms */ protected $totalHits; function __construct( ResultWrapper $resultSet, $terms, $total = null ) { @@ -29,25 +32,21 @@ class SqlSearchResultSet extends SearchResultSet { return $this->resultSet->numRows(); } - function next() { + public function extractResults() { if ( $this->resultSet === false ) { - return false; - } - - $row = $this->resultSet->fetchObject(); - if ( $row === false ) { - return false; + return []; } - return SearchResult::newFromTitle( - Title::makeTitle( $row->page_namespace, $row->page_title ), $this - ); - } - - function rewind() { - if ( $this->resultSet ) { + if ( $this->results === null ) { + $this->results = []; $this->resultSet->rewind(); + while ( ( $row = $this->resultSet->fetchObject() ) !== false ) { + $this->results[] = SearchResult::newFromTitle( + Title::makeTitle( $row->page_namespace, $row->page_title ), $this + ); + } } + return $this->results; } function free() {