1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
<?php
/**
* Service for looking up page revisions.
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
*/
namespace MediaWiki\Revision;
use MediaWiki\Linker\LinkTarget;
use MediaWiki\Page\PageIdentity;
use Wikimedia\Rdbms\IDBAccessObject;
/**
* Service for looking up page revisions.
*
* @note This was written to act as a drop-in replacement for the corresponding
* static methods in the old Revision class (which was later removed in 1.37).
*
* @since 1.31
* @since 1.32 Renamed from MediaWiki\Storage\RevisionLookup
*/
interface RevisionLookup {
/**
* Load a page revision from a given revision ID number.
* Returns null if no such revision can be found.
*
* MCR migration note: this replaced Revision::newFromId
*
* $flags include:
*
* @param int $id
* @param int $flags bit field, see IDBAccessObject::READ_XXX
* @param PageIdentity|null $page The page the revision belongs to.
* Providing the page may improve performance.
*
* @return RevisionRecord|null
*/
public function getRevisionById( $id, $flags = 0, ?PageIdentity $page = null );
/**
* Load either the current, or a specified, revision
* that's attached to a given link target. If not attached
* to that link target, will return null.
*
* MCR migration note: this replaced Revision::newFromTitle
*
* @param LinkTarget|PageIdentity $page Calling with LinkTarget is deprecated since 1.36
* @param int $revId (optional)
* @param int $flags bit field, see IDBAccessObject::READ_XXX
* @return RevisionRecord|null
*/
public function getRevisionByTitle( $page, $revId = 0, $flags = 0 );
/**
* Load either the current, or a specified, revision
* that's attached to a given page ID.
* Returns null if no such revision can be found.
*
* MCR migration note: this replaced Revision::newFromPageId
*
* @param int $pageId
* @param int $revId (optional)
* @param int $flags bit field, see IDBAccessObject::READ_XXX
* @return RevisionRecord|null
*/
public function getRevisionByPageId( $pageId, $revId = 0, $flags = 0 );
/**
* Load the revision for the given title with the given timestamp.
* WARNING: Timestamps may in some circumstances not be unique,
* so this isn't the best key to use.
*
* MCR migration note: this replaced Revision::loadFromTimestamp
*
* @param LinkTarget|PageIdentity $page Calling with LinkTarget is deprecated since 1.36
* @param string $timestamp
* @param int $flags Bitfield (optional) include:
* IDBAccessObject::READ_LATEST: Select the data from the primary DB
* IDBAccessObject::READ_LOCKING: Select & lock the data from the primary DB
* Default: IDBAccessObject::READ_NORMAL
* @return RevisionRecord|null
*/
public function getRevisionByTimestamp(
$page,
string $timestamp,
int $flags = IDBAccessObject::READ_NORMAL
): ?RevisionRecord;
/**
* Get previous revision for this title
*
* MCR migration note: this replaced Revision::getPrevious
*
* @param RevisionRecord $rev
* @param int $flags (optional) $flags include:
* IDBAccessObject::READ_LATEST: Select the data from the primary DB
*
* @return RevisionRecord|null
*/
public function getPreviousRevision( RevisionRecord $rev, $flags = 0 );
/**
* Get next revision for this title
*
* MCR migration note: this replaced Revision::getNext
*
* @param RevisionRecord $rev
* @param int $flags (optional) $flags include:
* IDBAccessObject::READ_LATEST: Select the data from the primary DB
*
* @return RevisionRecord|null
*/
public function getNextRevision( RevisionRecord $rev, $flags = 0 );
/**
* Get rev_timestamp from rev_id, without loading the rest of the row.
*
* MCR migration note: this replaced Revision::getTimestampFromId
*
* @param int $id
* @param int $flags
* @return string|false False if not found
* @since 1.34 (present earlier in RevisionStore)
*/
public function getTimestampFromId( $id, $flags = 0 );
/**
* Load a revision based on a known page ID and current revision ID from the DB
*
* This method allows for the use of caching, though accessing anything that normally
* requires permission checks (aside from the text) will trigger a small DB lookup.
*
* MCR migration note: this replaced Revision::newKnownCurrent
*
* @param PageIdentity $page the associated page
* @param int $revId current revision of this page
*
* @return RevisionRecord|false Returns false if missing
*/
public function getKnownCurrentRevision( PageIdentity $page, $revId = 0 );
/**
* Get the first revision of the page.
*
* @since 1.35
* @param LinkTarget|PageIdentity $page Calling with LinkTarget is deprecated since 1.36
* @param int $flags bit field, see IDBAccessObject::READ_* constants.
* @return RevisionRecord|null
*/
public function getFirstRevision(
$page,
int $flags = IDBAccessObject::READ_NORMAL
): ?RevisionRecord;
}
|