diff options
Diffstat (limited to 'www/wiki/includes/Storage/RevisionLookup.php')
-rw-r--r-- | www/wiki/includes/Storage/RevisionLookup.php | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/www/wiki/includes/Storage/RevisionLookup.php b/www/wiki/includes/Storage/RevisionLookup.php new file mode 100644 index 00000000..45cd1841 --- /dev/null +++ b/www/wiki/includes/Storage/RevisionLookup.php @@ -0,0 +1,120 @@ +<?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\Storage; + +use IDBAccessObject; +use MediaWiki\Linker\LinkTarget; +use Title; + +/** + * Service for looking up page revisions. + * + * @note This was written to act as a drop-in replacement for the corresponding + * static methods in Revision. + * + * @since 1.31 + */ +interface RevisionLookup extends IDBAccessObject { + + /** + * Load a page revision from a given revision ID number. + * Returns null if no such revision can be found. + * + * MCR migration note: this replaces Revision::newFromId + * + * $flags include: + * + * @param int $id + * @param int $flags bit field, see IDBAccessObject::READ_XXX + * @return RevisionRecord|null + */ + public function getRevisionById( $id, $flags = 0 ); + + /** + * 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 replaces Revision::newFromTitle + * + * @param LinkTarget $linkTarget + * @param int $revId (optional) + * @param int $flags bit field, see IDBAccessObject::READ_XXX + * @return RevisionRecord|null + */ + public function getRevisionByTitle( LinkTarget $linkTarget, $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 replaces 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 ); + + /** + * Get previous revision for this title + * + * MCR migration note: this replaces Revision::getPrevious + * + * @param RevisionRecord $rev + * @param Title $title if known (optional) + * + * @return RevisionRecord|null + */ + public function getPreviousRevision( RevisionRecord $rev, Title $title = null ); + + /** + * Get next revision for this title + * + * MCR migration note: this replaces Revision::getNext + * + * @param RevisionRecord $rev + * @param Title $title if known (optional) + * + * @return RevisionRecord|null + */ + public function getNextRevision( RevisionRecord $rev, Title $title = null ); + + /** + * 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 replaces Revision::newKnownCurrent + * + * @param Title $title the associated page title + * @param int $revId current revision of this page + * + * @return RevisionRecord|bool Returns false if missing + */ + public function getKnownCurrentRevision( Title $title, $revId ); + +} |