MediaWiki REL1_34
RevisionListBase.php
Go to the documentation of this file.
1<?php
25
29abstract class RevisionListBase extends ContextSource implements Iterator {
31 public $title;
32
34 protected $ids;
35
37 protected $res;
38
40 protected $current;
41
48 $this->setContext( $context );
49 $this->title = $title;
50 }
51
56 function filterByIds( array $ids ) {
57 $this->ids = $ids;
58 }
59
65 public function getType() {
66 return null;
67 }
68
72 protected function initCurrent() {
73 $row = $this->res->current();
74 if ( $row ) {
75 $this->current = $this->newItem( $row );
76 } else {
77 $this->current = false;
78 }
79 }
80
85 public function reset() {
86 if ( !$this->res ) {
87 $this->res = $this->doQuery( wfGetDB( DB_REPLICA ) );
88 } else {
89 $this->res->rewind();
90 }
91 $this->initCurrent();
92 return $this->current;
93 }
94
95 public function rewind() {
96 $this->reset();
97 }
98
103 public function current() {
104 return $this->current;
105 }
106
112 public function next() {
113 $this->res->next();
114 $this->initCurrent();
115 return $this->current;
116 }
117
118 public function key() {
119 return $this->res ? $this->res->key() : 0;
120 }
121
122 public function valid() {
123 return $this->res ? $this->res->valid() : false;
124 }
125
130 public function length() {
131 if ( !$this->res ) {
132 return 0;
133 } else {
134 return $this->res->numRows();
135 }
136 }
137
142 abstract public function doQuery( $db );
143
148 abstract public function newItem( $row );
149}
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
The simplest way of implementing IContextSource is to hold a RequestContext as a member variable and ...
IContextSource $context
setContext(IContextSource $context)
List for revision table items for a single page.
__construct(IContextSource $context, Title $title)
Construct a revision list for a given title.
getType()
Get the internal type name of this list.
reset()
Start iteration.
newItem( $row)
Create an item object from a DB result row.
bool Revision $current
current()
Get the current list item, or false if we are at the end.
filterByIds(array $ids)
Select items only where the ID is any of the specified values.
length()
Get the number of items in the list.
doQuery( $db)
Do the DB query to iterate through the objects.
initCurrent()
Initialise the current iteration pointer.
ResultWrapper bool $res
next()
Move the iteration pointer to the next list item, and return it.
Represents a title within MediaWiki.
Definition Title.php:42
Result wrapper for grabbing data queried from an IDatabase object.
Interface for objects which can provide a MediaWiki context on request.
Basic database interface for live and lazy-loaded relation database handles.
Definition IDatabase.php:38
const DB_REPLICA
Definition defines.php:25