MediaWiki  master
AbstractContent Class Reference

Base implementation for content objects. More...

Inheritance diagram for AbstractContent:
Collaboration diagram for AbstractContent:

Public Member Functions

 __construct ( $modelId=null)
 
 addSectionHeader ( $header)
 
 convert ( $toModel, $lossy='')
 This base implementation calls the hook ConvertContent to enable custom conversions. More...
 
 equals (Content $that=null)
 Decides whether two Content objects are equal. More...
 
 getContentHandler ()
 
 getDefaultFormat ()
 
 getModel ()
 
 getParserOutput (Title $title, $revId=null, ParserOptions $options=null, $generateHtml=true)
 Returns a ParserOutput object containing information derived from this content. More...
 
 getRedirectChain ()
 
 getRedirectTarget ()
 Subclasses that implement redirects should override this. More...
 
 getSection ( $sectionId)
 
 getSupportedFormats ()
 
 getUltimateRedirectTarget ()
 
 isEmpty ()
 
 isRedirect ()
 
 isSupportedFormat ( $format)
 
 isValid ()
 Subclasses may override this to implement (light weight) validation. More...
 
 matchMagicWord (MagicWord $word)
 This default implementation always returns false. More...
 
 preloadTransform (Title $title, ParserOptions $popts, $params=[])
 
 prepareSave (WikiPage $page, $flags, $parentRevId, User $user)
 
 preSaveTransform (Title $title, User $user, ParserOptions $popts)
 
 replaceSection ( $sectionId, Content $with, $sectionTitle='')
 
 serialize ( $format=null)
 
 updateRedirect (Title $target)
 This default implementation always returns $this. More...
 
- Public Member Functions inherited from Content
 copy ()
 Return a copy of this Content object. More...
 
 getNativeData ()
 Returns native representation of the data. More...
 
 getSize ()
 Returns the content's nominal size in "bogo-bytes". More...
 
 getTextForSearchIndex ()
 
 getTextForSummary ( $maxLength=250)
 Returns a textual representation of the content suitable for use in edit summaries and log messages. More...
 
 getWikitextForTransclusion ()
 
 isCountable ( $hasLinks=null)
 Returns true if this content is countable as a "real" wiki page, provided that it's also in a countable location (e.g. More...
 

Protected Member Functions

 checkFormat ( $format)
 
 checkModelID ( $modelId)
 
 equalsInternal (Content $that)
 Checks whether $that is logically equal to this Content object. More...
 
 fillParserOutput (Title $title, $revId, ParserOptions $options, $generateHtml, ParserOutput &$output)
 Fills the provided ParserOutput with information derived from the content. More...
 
 getContentHandlerFactory ()
 

Protected Attributes

string $model_id
 Name of the content model this Content object represents. More...
 

Detailed Description

Base implementation for content objects.

Stability: stable
to extend

Definition at line 40 of file AbstractContent.php.

Constructor & Destructor Documentation

◆ __construct()

AbstractContent::__construct (   $modelId = null)
Stability: stable
to call
Parameters
string | null$modelId
Since
1.21

Reimplemented in WikitextContent.

Definition at line 58 of file AbstractContent.php.

Member Function Documentation

◆ addSectionHeader()

AbstractContent::addSectionHeader (   $header)
Stability: stable
to override
Since
1.21
Parameters
string$header
Returns
Content $this
See also
Content::addSectionHeader

Implements Content.

Reimplemented in WikitextContent.

Definition at line 418 of file AbstractContent.php.

◆ checkFormat()

AbstractContent::checkFormat (   $format)
protected
Since
1.21
Parameters
string$formatThe serialization format to check.
Exceptions
MWExceptionIf the format is not supported by this content handler.

Definition at line 151 of file AbstractContent.php.

References getModel(), and isSupportedFormat().

◆ checkModelID()

AbstractContent::checkModelID (   $modelId)
protected
Since
1.21
Parameters
string$modelIdThe model to check
Exceptions
MWExceptionIf the provided ID is not the ID of the content model supported by this Content object.

Definition at line 80 of file AbstractContent.php.

Referenced by TextContent\diff().

◆ convert()

AbstractContent::convert (   $toModel,
  $lossy = '' 
)

This base implementation calls the hook ConvertContent to enable custom conversions.

Subclasses may override this to implement conversion for "their" content model.

Stability: stable
to override
Parameters
string$toModel
string$lossy
Returns
Content|bool
See also
Content::convert()

Implements Content.

Reimplemented in TextContent, and FallbackContent.

Definition at line 487 of file AbstractContent.php.

References getModel(), and Hooks\runner().

◆ equals()

AbstractContent::equals ( Content  $that = null)

Decides whether two Content objects are equal.

Two Content objects MUST not be considered equal if they do not share the same content model. Two Content objects that are equal SHOULD have the same serialization.

This default implementation relies on equalsInternal() to determin whether the Content objects are logically equivalent. Subclasses that need to implement a custom equality check should consider overriding equalsInternal(). Subclasses that override equals() itself MUST make sure that the implementation returns false for $that === null, and true for $that === this. It MUST also return false if $that does not have the same content model.

Stability: stable
to override
Since
1.21
Parameters
Content | null$that
Returns
bool
See also
Content::equals

Implements Content.

Definition at line 221 of file AbstractContent.php.

References equalsInternal().

Referenced by CssContent\getRedirectTarget(), and JavaScriptContent\getRedirectTarget().

◆ equalsInternal()

AbstractContent::equalsInternal ( Content  $that)
protected

Checks whether $that is logically equal to this Content object.

This method can be overwritten by subclasses that need to implement custom equality checks.

This default implementation checks whether the serializations of $this and $that are the same: $this->serialize() === $that->serialize()

Implementors can assume that $that is an instance of the same class as the present Content object, as long as equalsInternal() is only called by the standard implementation of equals().

Note
Do not call this method directly, call equals() instead.
Stability: stable
to override
Parameters
Content$that
Returns
bool

Reimplemented in FallbackContent.

Definition at line 262 of file AbstractContent.php.

References serialize(), and Content\serialize().

Referenced by equals().

◆ fillParserOutput()

AbstractContent::fillParserOutput ( Title  $title,
  $revId,
ParserOptions  $options,
  $generateHtml,
ParserOutput $output 
)
protected

Fills the provided ParserOutput with information derived from the content.

Unless $generateHtml was false, this includes an HTML representation of the content.

This is called by getParserOutput() after consulting the ContentGetParserOutput hook. Subclasses are expected to override this method (or getParserOutput(), if need be). Subclasses of TextContent should generally override getHtml() instead.

This placeholder implementation always throws an exception.

Stability: stable
to override
Since
1.24
Parameters
Title$titleContext title for parsing
int | null$revIdID of the revision being rendered. See Parser::parse() for the ramifications.
ParserOptions$options
bool$generateHtmlWhether or not to generate HTML
ParserOutput&$outputThe output object to fill (reference).
Exceptions
MWException

Reimplemented in WikitextContent, TextContent, JsonContent, and FallbackContent.

Definition at line 573 of file AbstractContent.php.

Referenced by getParserOutput().

◆ getContentHandler()

◆ getContentHandlerFactory()

AbstractContent::getContentHandlerFactory ( )
protected
Returns
IContentHandlerFactory

Definition at line 103 of file AbstractContent.php.

Referenced by TextContent\convert(), and getContentHandler().

◆ getDefaultFormat()

AbstractContent::getDefaultFormat ( )
Since
1.21
See also
Content::getDefaultFormat
Returns
string

Implements Content.

Definition at line 113 of file AbstractContent.php.

References getContentHandler().

◆ getModel()

AbstractContent::getModel ( )

◆ getParserOutput()

AbstractContent::getParserOutput ( Title  $title,
  $revId = null,
ParserOptions  $options = null,
  $generateHtml = true 
)

Returns a ParserOutput object containing information derived from this content.

Most importantly, unless $generateHtml was false, the return value contains an HTML representation of the content.

Subclasses that want to control the parser output may override this, but it is preferred to override fillParserOutput() instead.

Subclasses that override getParserOutput() itself should take care to call the ContentGetParserOutput hook.

Stability: stable
to override
Since
1.24
Parameters
Title$titleContext title for parsing
int | null$revIdRevision ID being rendered
ParserOptions | null$options
bool$generateHtmlWhether or not to generate HTML
Returns
ParserOutput Containing information derived from this content.

Implements Content.

Reimplemented in MessageContent.

Definition at line 523 of file AbstractContent.php.

References $title, fillParserOutput(), getRedirectTarget(), ParserOptions\newCanonical(), and Hooks\runner().

Referenced by WikitextContent\isCountable().

◆ getRedirectChain()

AbstractContent::getRedirectChain ( )

◆ getRedirectTarget()

AbstractContent::getRedirectTarget ( )

Subclasses that implement redirects should override this.

Stability: stable
to override
Since
1.21
Returns
Title|null
See also
Content::getRedirectTarget

Implements Content.

Reimplemented in WikitextContent, JavaScriptContent, and CssContent.

Definition at line 314 of file AbstractContent.php.

Referenced by getParserOutput(), getRedirectChain(), and isRedirect().

◆ getSection()

AbstractContent::getSection (   $sectionId)
Stability: stable
to override
Since
1.21
Parameters
string | int$sectionId
Returns
null
See also
Content::getSection

Implements Content.

Reimplemented in WikitextContent.

Definition at line 370 of file AbstractContent.php.

◆ getSupportedFormats()

AbstractContent::getSupportedFormats ( )
Since
1.21
See also
Content::getSupportedFormats
Returns
string[]

Implements Content.

Definition at line 123 of file AbstractContent.php.

References getContentHandler().

◆ getUltimateRedirectTarget()

AbstractContent::getUltimateRedirectTarget ( )
Note
Migrated here from Title::newFromRedirectRecurse.
Since
1.21
Returns
Title|null
See also
Content::getUltimateRedirectTarget

Implements Content.

Definition at line 327 of file AbstractContent.php.

References getRedirectChain().

◆ isEmpty()

AbstractContent::isEmpty ( )
Stability: stable
to override
Since
1.21
Returns
bool
See also
Content::isEmpty

Implements Content.

Definition at line 182 of file AbstractContent.php.

References Content\getSize().

◆ isRedirect()

AbstractContent::isRedirect ( )

◆ isSupportedFormat()

AbstractContent::isSupportedFormat (   $format)
Since
1.21
Parameters
string$format
Returns
bool
See also
Content::isSupportedFormat

Implements Content.

Definition at line 136 of file AbstractContent.php.

References getContentHandler().

Referenced by checkFormat().

◆ isValid()

AbstractContent::isValid ( )

Subclasses may override this to implement (light weight) validation.

Stability: stable
to override
Since
1.21
Returns
bool Always true.
See also
Content::isValid

Implements Content.

Reimplemented in JsonContent.

Definition at line 196 of file AbstractContent.php.

Referenced by prepareSave().

◆ matchMagicWord()

AbstractContent::matchMagicWord ( MagicWord  $word)

This default implementation always returns false.

Subclasses may override this to supply matching logic.

Stability: stable
to override
Since
1.21
Parameters
MagicWord$word
Returns
bool Always false.
See also
Content::matchMagicWord

Implements Content.

Reimplemented in WikitextContent.

Definition at line 470 of file AbstractContent.php.

◆ preloadTransform()

AbstractContent::preloadTransform ( Title  $title,
ParserOptions  $popts,
  $params = [] 
)
Stability: stable
to override
Since
1.21
Parameters
Title$title
ParserOptions$popts
array$params
Returns
Content $this
See also
Content::preloadTransform

Implements Content.

Reimplemented in WikitextContent.

Definition at line 433 of file AbstractContent.php.

◆ prepareSave()

AbstractContent::prepareSave ( WikiPage  $page,
  $flags,
  $parentRevId,
User  $user 
)
Stability: stable
to override
Since
1.21
Parameters
WikiPage$page
int$flags
int$parentRevId
User$user
Returns
Status
See also
Content::prepareSave

Implements Content.

Definition at line 449 of file AbstractContent.php.

References isValid(), StatusValue\newFatal(), and StatusValue\newGood().

◆ preSaveTransform()

AbstractContent::preSaveTransform ( Title  $title,
User  $user,
ParserOptions  $popts 
)
Since
1.21
Deprecated:
since 1.37. Use ContentTransformer::preSaveTransform instead. Extensions defining a content model should override ContentHandler::preSaveTransform.
Parameters
Title$title
User$user
ParserOptions$popts
Returns
Content $this
See also
Content::preSaveTransform

Implements Content.

Definition at line 401 of file AbstractContent.php.

References $title, and getContentHandler().

◆ replaceSection()

AbstractContent::replaceSection (   $sectionId,
Content  $with,
  $sectionTitle = '' 
)
Stability: stable
to override
Since
1.21
Parameters
string | int | null | bool$sectionId
Content$with
string$sectionTitle
Returns
null
See also
Content::replaceSection

Implements Content.

Reimplemented in WikitextContent.

Definition at line 385 of file AbstractContent.php.

◆ serialize()

AbstractContent::serialize (   $format = null)
Stability: stable
to override
Since
1.21
Parameters
string | null$format
Returns
string
See also
Content::serialize

Implements Content.

Reimplemented in FallbackContent.

Definition at line 170 of file AbstractContent.php.

References getContentHandler().

Referenced by equalsInternal().

◆ updateRedirect()

AbstractContent::updateRedirect ( Title  $target)

This default implementation always returns $this.

Subclasses that implement redirects should override this.

Stability: stable
to override
Since
1.21
Parameters
Title$target
Returns
Content $this
See also
Content::updateRedirect

Implements Content.

Reimplemented in WikitextContent, JavaScriptContent, and CssContent.

Definition at line 357 of file AbstractContent.php.

Member Data Documentation

◆ $model_id

string AbstractContent::$model_id
protected

Name of the content model this Content object represents.

Use with CONTENT_MODEL_XXX constants

Since
1.21

Definition at line 49 of file AbstractContent.php.

Referenced by FallbackContent\__construct(), TextContent\__construct(), and getModel().


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