X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FRevision.php;h=cbaff90d6972e62c936713c7b24fe13d3c05695e;hb=8b26fc816ff5518726db80f518ad08460845ec6e;hp=6d1812a98ed48644e73ec981ed841a633bfb9ac0;hpb=988af574cb66f560f37feb2700a514a2287d445f;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Revision.php b/includes/Revision.php index 6d1812a98e..cbaff90d69 100644 --- a/includes/Revision.php +++ b/includes/Revision.php @@ -29,11 +29,10 @@ use MediaWiki\Revision\RevisionStore; use MediaWiki\Revision\RevisionStoreRecord; use MediaWiki\Revision\SlotRecord; use MediaWiki\Storage\SqlBlobStore; +use Wikimedia\Assert\Assert; use Wikimedia\Rdbms\IDatabase; use MediaWiki\Linker\LinkTarget; use MediaWiki\MediaWikiServices; -use Wikimedia\Rdbms\ResultWrapper; -use Wikimedia\Rdbms\FakeResultWrapper; /** * @deprecated since 1.31, use RevisionRecord, RevisionStore, and BlobStore instead. @@ -118,7 +117,7 @@ class Revision implements IDBAccessObject { */ public static function newFromId( $id, $flags = 0 ) { $rec = self::getRevisionLookup()->getRevisionById( $id, $flags ); - return $rec === null ? null : new Revision( $rec, $flags ); + return $rec ? new Revision( $rec, $flags ) : null; } /** @@ -137,7 +136,7 @@ class Revision implements IDBAccessObject { */ public static function newFromTitle( LinkTarget $linkTarget, $id = 0, $flags = 0 ) { $rec = self::getRevisionLookup()->getRevisionByTitle( $linkTarget, $id, $flags ); - return $rec === null ? null : new Revision( $rec, $flags ); + return $rec ? new Revision( $rec, $flags ) : null; } /** @@ -156,7 +155,7 @@ class Revision implements IDBAccessObject { */ public static function newFromPageId( $pageId, $revId = 0, $flags = 0 ) { $rec = self::getRevisionLookup()->getRevisionByPageId( $pageId, $revId, $flags ); - return $rec === null ? null : new Revision( $rec, $flags ); + return $rec ? new Revision( $rec, $flags ) : null; } /** @@ -243,7 +242,7 @@ class Revision implements IDBAccessObject { public static function loadFromId( $db, $id ) { wfDeprecated( __METHOD__, '1.31' ); // no known callers $rec = self::getRevisionStore()->loadRevisionFromId( $db, $id ); - return $rec === null ? null : new Revision( $rec ); + return $rec ? new Revision( $rec ) : null; } /** @@ -260,7 +259,7 @@ class Revision implements IDBAccessObject { */ public static function loadFromPageId( $db, $pageid, $id = 0 ) { $rec = self::getRevisionStore()->loadRevisionFromPageId( $db, $pageid, $id ); - return $rec === null ? null : new Revision( $rec ); + return $rec ? new Revision( $rec ) : null; } /** @@ -277,7 +276,7 @@ class Revision implements IDBAccessObject { */ public static function loadFromTitle( $db, $title, $id = 0 ) { $rec = self::getRevisionStore()->loadRevisionFromTitle( $db, $title, $id ); - return $rec === null ? null : new Revision( $rec ); + return $rec ? new Revision( $rec ) : null; } /** @@ -295,21 +294,7 @@ class Revision implements IDBAccessObject { */ public static function loadFromTimestamp( $db, $title, $timestamp ) { $rec = self::getRevisionStore()->loadRevisionFromTimestamp( $db, $title, $timestamp ); - return $rec === null ? null : new Revision( $rec ); - } - - /** - * Return a wrapper for a series of database rows to - * fetch all of a given page's revisions in turn. - * Each row can be fed to the constructor to get objects. - * - * @param LinkTarget $title - * @return ResultWrapper - * @deprecated Since 1.28, no callers in core nor in known extensions. No-op since 1.31. - */ - public static function fetchRevision( LinkTarget $title ) { - wfDeprecated( __METHOD__, '1.31' ); - return new FakeResultWrapper( [] ); + return $rec ? new Revision( $rec ) : null; } /** @@ -345,7 +330,7 @@ class Revision implements IDBAccessObject { */ public static function pageJoinCond() { wfDeprecated( __METHOD__, '1.31' ); - return [ 'INNER JOIN', [ 'page_id = rev_page' ] ]; + return [ 'JOIN', [ 'page_id = rev_page' ] ]; } /** @@ -559,7 +544,7 @@ class Revision implements IDBAccessObject { * @param int $queryFlags * @param Title|null $title * - * @access private + * @private */ function __construct( $row, $queryFlags = 0, Title $title = null ) { global $wgUser; @@ -589,6 +574,8 @@ class Revision implements IDBAccessObject { '$row must be a row object, an associative array, or a RevisionRecord' ); } + + Assert::postcondition( $this->mRecord !== null, 'Failed to construct a RevisionRecord' ); } /** @@ -843,18 +830,17 @@ class Revision implements IDBAccessObject { $user = $this->mRecord->getUser( $audience, $user ); return $user ? $user->getName() : ''; } + /** - * Fetch revision comment if it's available to the specified audience. - * If the specified audience does not have access to the comment, an - * empty string will be returned. - * * @param int $audience One of: * Revision::FOR_PUBLIC to be displayed to all users * Revision::FOR_THIS_USER to be displayed to the given user * Revision::RAW get the text regardless of permissions * @param User|null $user User object to check for, only if FOR_THIS_USER is passed * to the $audience parameter - * @return string + * + * @return string|null Returns null if the specified audience does not have access to the + * comment. */ function getComment( $audience = self::FOR_PUBLIC, User $user = null ) { global $wgUser; @@ -1024,7 +1010,7 @@ class Revision implements IDBAccessObject { public function getPrevious() { $title = $this->getTitle(); $rec = self::getRevisionLookup()->getPreviousRevision( $this->mRecord, $title ); - return $rec === null ? null : new Revision( $rec, self::READ_NORMAL, $title ); + return $rec ? new Revision( $rec, self::READ_NORMAL, $title ) : null; } /** @@ -1035,7 +1021,7 @@ class Revision implements IDBAccessObject { public function getNext() { $title = $this->getTitle(); $rec = self::getRevisionLookup()->getNextRevision( $this->mRecord, $title ); - return $rec === null ? null : new Revision( $rec, self::READ_NORMAL, $title ); + return $rec ? new Revision( $rec, self::READ_NORMAL, $title ) : null; } /** @@ -1180,9 +1166,7 @@ class Revision implements IDBAccessObject { $rec = self::getRevisionStore()->insertRevisionOn( $this->mRecord, $dbw ); $this->mRecord = $rec; - - // Avoid PHP 7.1 warning of passing $this by reference - $revision = $this; + Assert::postcondition( $this->mRecord !== null, 'Failed to acquire a RevisionRecord' ); return $rec->getId(); }