wiki.techinc.nl/includes/Revision/RevisionLookup.php
Umherirrender e662614f95 Use explicit nullable type on parameter arguments
Implicitly marking parameter $... as nullable is deprecated in php8.4,
the explicit nullable type must be used instead

Created with autofix from Ide15839e98a6229c22584d1c1c88c690982e1d7a

Break one long line in SpecialPage.php

Bug: T376276
Change-Id: I807257b2ba1ab2744ab74d9572c9c3d3ac2a968e
2024-10-16 20:58:33 +02:00

172 lines
5.5 KiB
PHP

<?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;
}