MediaWiki REL1_32
MediaWiki\Revision\RenderedRevision Class Reference

RenderedRevision represents the rendered representation of a revision. More...

Inheritance diagram for MediaWiki\Revision\RenderedRevision:
Collaboration diagram for MediaWiki\Revision\RenderedRevision:

Public Member Functions

 __construct (Title $title, RevisionRecord $revision, ParserOptions $options, callable $combineOutput, $audience=RevisionRecord::FOR_PUBLIC, User $forUser=null)
 
 getOptions ()
 
 getRevision ()
 
 getRevisionParserOutput (array $hints=[])
 
 getSlotParserOutput ( $role, array $hints=[])
 
 isContentDeleted ()
 
 setSaveParseLogger (LoggerInterface $saveParseLogger)
 
 updateRevision (RevisionRecord $rev)
 Updates the RevisionRecord after the revision has been saved.
 

Private Member Functions

 getSlotParserOutputUncached (Content $content, $withHtml)
 
 outputVariesOnRevisionMetaData (ParserOutput $out, $actualRevId)
 
 pruneRevisionSensitiveOutput ( $actualRevId)
 Prune any output that depends on the revision ID.
 
 setRevisionInternal (RevisionRecord $revision)
 

Private Attributes

int $audience = RevisionRecord::FOR_PUBLIC
 Audience to check when accessing content.
 
callable $combineOutput
 Callback for combining slot output into revision output.
 
User null $forUser = null
 The user to use for audience checks during content access.
 
ParserOptions $options
 
RevisionRecord $revision
 
ParserOutput null $revisionOutput = null
 The combined ParserOutput for the revision, initialized lazily by getRevisionParserOutput().
 
LoggerInterface $saveParseLogger
 For profiling ParserOutput re-use.
 
ParserOutput[] $slotsOutput = []
 The ParserOutput for each slot, initialized lazily by getSlotParserOutput().
 
Title $title
 

Detailed Description

RenderedRevision represents the rendered representation of a revision.

It acts as a lazy provider of ParserOutput objects for the revision's individual slots, as well as a combined ParserOutput of all slots.

Since
1.32

Definition at line 44 of file RenderedRevision.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Revision\RenderedRevision::__construct ( Title  $title,
RevisionRecord  $revision,
ParserOptions  $options,
callable  $combineOutput,
  $audience = RevisionRecord::FOR_PUBLIC,
User  $forUser = null 
)
Note
Application logic should not instantiate RenderedRevision instances directly, but should use a RevisionRenderer instead.
Parameters
Title$title
RevisionRecord$revisionThe revision to render. The content for rendering will be taken from this RevisionRecord. However, if the RevisionRecord is not complete according isReadyForInsertion(), but a revision ID is known, the parser may load the revision from the database if it needs revision meta data to handle magic words like {{REVISIONUSER}}.
ParserOptions$options
callable$combineOutputCallback for combining slot output into revision output. Signature: function ( RenderedRevision $this ): ParserOutput.
int$audienceUse RevisionRecord::FOR_PUBLIC, FOR_THIS_USER, or RAW.
User | null$forUserRequired if $audience is FOR_THIS_USER.

Definition at line 108 of file RenderedRevision.php.

References MediaWiki\Revision\RenderedRevision\$audience, MediaWiki\Revision\RenderedRevision\$combineOutput, MediaWiki\Revision\RenderedRevision\$forUser, MediaWiki\Revision\RenderedRevision\$options, MediaWiki\Revision\RenderedRevision\$title, MediaWiki\Revision\RevisionRecord\FOR_THIS_USER, options(), MediaWiki\Revision\RenderedRevision\setRevisionInternal(), and title.

Member Function Documentation

◆ getOptions()

MediaWiki\Revision\RenderedRevision::getOptions ( )

◆ getRevision()

MediaWiki\Revision\RenderedRevision::getRevision ( )

◆ getRevisionParserOutput()

MediaWiki\Revision\RenderedRevision::getRevisionParserOutput ( array  $hints = [])
Parameters
array$hintsHints given as an associative array. Known keys:
  • 'generate-html' => bool: Whether the caller is interested in output HTML (as opposed to just meta-data). Default is to generate HTML.
Returns
ParserOutput

Definition at line 169 of file RenderedRevision.php.

References $output, and MediaWiki\Revision\RenderedRevision\$revisionOutput.

◆ getSlotParserOutput()

MediaWiki\Revision\RenderedRevision::getSlotParserOutput (   $role,
array  $hints = [] 
)
Parameters
string$role
array$hintsHints given as an associative array. Known keys:
  • 'generate-html' => bool: Whether the caller is interested in output HTML (as opposed to just meta-data). Default is to generate HTML.
Exceptions
SuppressedDataExceptionif the content is not accessible for the audience specified in the constructor.
Returns
ParserOutput

Implements MediaWiki\Revision\SlotRenderingProvider.

Definition at line 198 of file RenderedRevision.php.

References $content, $output, MediaWiki\Revision\RenderedRevision\getSlotParserOutputUncached(), options(), and revision.

Referenced by MediaWiki\Tests\Revision\RenderedRevisionTest\combineOutput(), and MediaWiki\Revision\RevisionRenderer\combineSlotOutput().

◆ getSlotParserOutputUncached()

MediaWiki\Revision\RenderedRevision::getSlotParserOutputUncached ( Content  $content,
  $withHtml 
)
private
Note
This method exist to make duplicate parses easier to see during profiling
Parameters
Content$content
bool$withHtml
Returns
ParserOutput

Definition at line 237 of file RenderedRevision.php.

References $content, revision, and title.

Referenced by MediaWiki\Revision\RenderedRevision\getSlotParserOutput().

◆ isContentDeleted()

MediaWiki\Revision\RenderedRevision::isContentDeleted ( )
Returns
bool Whether the revision's content has been hidden from unprivileged users.

Definition at line 144 of file RenderedRevision.php.

References MediaWiki\Revision\RevisionRecord\DELETED_TEXT, and revision.

◆ outputVariesOnRevisionMetaData()

MediaWiki\Revision\RenderedRevision::outputVariesOnRevisionMetaData ( ParserOutput  $out,
  $actualRevId 
)
private
Parameters
ParserOutput$out
int | bool$actualRevIdThe actual rev id, to check the used speculative rev ID against, or false to not purge on vary-revision-id, or true to purge on vary-revision-id unconditionally.
Returns
bool

Definition at line 356 of file RenderedRevision.php.

References $out, and wfDebug().

Referenced by MediaWiki\Revision\RenderedRevision\pruneRevisionSensitiveOutput().

◆ pruneRevisionSensitiveOutput()

MediaWiki\Revision\RenderedRevision::pruneRevisionSensitiveOutput (   $actualRevId)
private

Prune any output that depends on the revision ID.

Parameters
int | bool$actualRevIdThe actual rev id, to check the used speculative rev ID against, or false to not purge on vary-revision-id, or true to purge on vary-revision-id unconditionally.

Definition at line 281 of file RenderedRevision.php.

References $output, as, and MediaWiki\Revision\RenderedRevision\outputVariesOnRevisionMetaData().

Referenced by MediaWiki\Revision\RenderedRevision\updateRevision().

◆ setRevisionInternal()

MediaWiki\Revision\RenderedRevision::setRevisionInternal ( RevisionRecord  $revision)
private

◆ setSaveParseLogger()

MediaWiki\Revision\RenderedRevision::setSaveParseLogger ( LoggerInterface  $saveParseLogger)
Parameters
LoggerInterface$saveParseLogger

Definition at line 137 of file RenderedRevision.php.

References MediaWiki\Revision\RenderedRevision\$saveParseLogger.

Referenced by MediaWiki\Revision\RevisionRenderer\getRenderedRevision().

◆ updateRevision()

MediaWiki\Revision\RenderedRevision::updateRevision ( RevisionRecord  $rev)

Updates the RevisionRecord after the revision has been saved.

This can be used to discard and cached ParserOutput so parser functions like {{REVISIONTIMESTAMP}} or {{REVISIONID}} are re-evaluated.

Note
There should be no need to call this for null-edits.
Parameters
RevisionRecord$rev

Definition at line 255 of file RenderedRevision.php.

References $rev, MediaWiki\Revision\RenderedRevision\pruneRevisionSensitiveOutput(), revision, and MediaWiki\Revision\RenderedRevision\setRevisionInternal().

Member Data Documentation

◆ $audience

int MediaWiki\Revision\RenderedRevision::$audience = RevisionRecord::FOR_PUBLIC
private

Audience to check when accessing content.

Definition at line 62 of file RenderedRevision.php.

Referenced by MediaWiki\Revision\RenderedRevision\__construct().

◆ $combineOutput

callable MediaWiki\Revision\RenderedRevision::$combineOutput
private

Callback for combining slot output into revision output.

Signature: function ( RenderedRevision $this ): ParserOutput.

Definition at line 85 of file RenderedRevision.php.

Referenced by MediaWiki\Revision\RenderedRevision\__construct().

◆ $forUser

User null MediaWiki\Revision\RenderedRevision::$forUser = null
private

The user to use for audience checks during content access.

Definition at line 67 of file RenderedRevision.php.

Referenced by MediaWiki\Revision\RenderedRevision\__construct().

◆ $options

ParserOptions MediaWiki\Revision\RenderedRevision::$options
private

◆ $revision

RevisionRecord MediaWiki\Revision\RenderedRevision::$revision
private

◆ $revisionOutput

ParserOutput null MediaWiki\Revision\RenderedRevision::$revisionOutput = null
private

The combined ParserOutput for the revision, initialized lazily by getRevisionParserOutput().

Definition at line 73 of file RenderedRevision.php.

Referenced by MediaWiki\Revision\RenderedRevision\getRevisionParserOutput().

◆ $saveParseLogger

LoggerInterface MediaWiki\Revision\RenderedRevision::$saveParseLogger
private

For profiling ParserOutput re-use.

Definition at line 90 of file RenderedRevision.php.

Referenced by MediaWiki\Revision\RenderedRevision\setSaveParseLogger().

◆ $slotsOutput

ParserOutput [] MediaWiki\Revision\RenderedRevision::$slotsOutput = []
private

The ParserOutput for each slot, initialized lazily by getSlotParserOutput().

Definition at line 79 of file RenderedRevision.php.

◆ $title

Title MediaWiki\Revision\RenderedRevision::$title
private

The documentation for this class was generated from the following file: