MediaWiki  master
TitleValue Class Reference

Represents a page (or page fragment) title within MediaWiki. More...

Inheritance diagram for TitleValue:
Collaboration diagram for TitleValue:

Public Member Functions

 __construct ( $namespace, $title, $fragment='', $interwiki='')
 Constructs a TitleValue. More...
 
 __toString ()
 Returns a string representation of the title, for logging. More...
 
 createFragmentTarget ( $fragment)
 Creates a new TitleValue for a different fragment of the same page. More...
 
 getDBkey ()
 Returns the title's DB key, as supplied to the constructor, without namespace prefix or fragment. More...
 
 getFragment ()
 
 getInterwiki ()
 Returns the interwiki part. More...
 
 getNamespace ()
 
 getText ()
 Returns the title in text form, without namespace prefix or fragment. More...
 
 hasFragment ()
 
 inNamespace ( $ns)
 
 isExternal ()
 Whether it has an interwiki part. More...
 
 isSameLinkAs (LinkTarget $other)
 

Static Public Member Functions

static assertValidSpec ( $namespace, $title, $fragment='', $interwiki='')
 Asserts that the given parameters could be used to construct a TitleValue object. More...
 
static castPageToLinkTarget (?PageReference $page)
 Casts a PageReference to a LinkTarget. More...
 
static newFromPage (PageReference $page)
 Constructs a TitleValue from a local PageReference. More...
 
static tryNew ( $namespace, $title, $fragment='', $interwiki='')
 Constructs a TitleValue, or returns null if the parameters are not valid. More...
 

Public Attributes

string $prefixedText = null
 Text form including namespace/interwiki, initialised on demand. More...
 

Protected Attributes

string $dbkey
 
string $fragment
 
string $interwiki
 
int $namespace
 

Detailed Description

Represents a page (or page fragment) title within MediaWiki.

Note
In contrast to Title, this is designed to be a plain value object. That is, it is immutable, does not use global state, and causes no side effects.

@newable

See also
https://www.mediawiki.org/wiki/Requests_for_comment/TitleValue
Since
1.23

Definition at line 40 of file TitleValue.php.

Constructor & Destructor Documentation

◆ __construct()

TitleValue::__construct (   $namespace,
  $title,
  $fragment = '',
  $interwiki = '' 
)

Constructs a TitleValue.

Note
TitleValue expects a valid namespace and name; typically, a TitleValue is constructed either from a database entry, or by a TitleParser. For constructing a TitleValue from user input or external sources, use a TitleParser.
Stability: stable
to call
Parameters
int$namespaceThe namespace ID. This is not validated.
string$titleThe page title in either DBkey or text form. No normalization is applied beyond underscore/space conversion.
string$fragmentThe fragment title. Use '' to represent the whole page. No validation or normalization is applied.
string$interwikiThe interwiki component. No validation or normalization is applied.
Exceptions
InvalidArgumentException

Definition at line 163 of file TitleValue.php.

References $fragment, $interwiki, $namespace, $title, and assertValidSpec().

Member Function Documentation

◆ __toString()

TitleValue::__toString ( )

Returns a string representation of the title, for logging.

This is purely informative and must not be used programmatically. Use the appropriate TitleFormatter to generate the correct string representation for a given use.

Since
1.23
Returns
string

Implements MediaWiki\Linker\LinkTarget.

Definition at line 319 of file TitleValue.php.

References $fragment, and if.

◆ assertValidSpec()

static TitleValue::assertValidSpec (   $namespace,
  $title,
  $fragment = '',
  $interwiki = '' 
)
static

Asserts that the given parameters could be used to construct a TitleValue object.

Performs basic syntax and consistency checks. Does not perform full validation, use TitleParser::makeTitleValueSafe() for that.

Parameters
int$namespace
string$title
string$fragment
string$interwiki
Exceptions
InvalidArgumentExceptionif the combination of parameters is not valid for constructing a TitleValue.

Definition at line 185 of file TitleValue.php.

References $fragment, $interwiki, $namespace, $title, and NS_MAIN.

Referenced by __construct(), and MediaWikiTitleCodec\splitTitleString().

◆ castPageToLinkTarget()

static TitleValue::castPageToLinkTarget ( ?PageReference  $page)
static

Casts a PageReference to a LinkTarget.

If $page is null, null is returned. If $page is also an instance of LinkTarget, $page is returned unchanged.

See also
newFromPage()
Since
1.37
Parameters
?PageReference$page
Returns
?LinkTarget

Definition at line 136 of file TitleValue.php.

References newFromPage().

Referenced by OutputPage\buildBacklinkSubtitle(), User\isBlockedFrom(), ImportReporter\reportPage(), OutputPage\returnToMain(), and HTMLForm\setCancelTarget().

◆ createFragmentTarget()

TitleValue::createFragmentTarget (   $fragment)

Creates a new TitleValue for a different fragment of the same page.

Since
1.27
Parameters
string$fragmentThe fragment name, or "" for the entire page.
Returns
TitleValue

Implements MediaWiki\Linker\LinkTarget.

Definition at line 282 of file TitleValue.php.

References $fragment.

◆ getDBkey()

TitleValue::getDBkey ( )

Returns the title's DB key, as supplied to the constructor, without namespace prefix or fragment.

Since
1.23
Returns
string

Implements MediaWiki\Linker\LinkTarget.

Definition at line 254 of file TitleValue.php.

References $dbkey.

Referenced by isSameLinkAs().

◆ getFragment()

TitleValue::getFragment ( )
Since
1.23
Returns
string

Implements MediaWiki\Linker\LinkTarget.

Definition at line 235 of file TitleValue.php.

References $fragment.

Referenced by isSameLinkAs().

◆ getInterwiki()

TitleValue::getInterwiki ( )

Returns the interwiki part.

Since
1.27
Returns
string

Implements MediaWiki\Linker\LinkTarget.

Definition at line 307 of file TitleValue.php.

References $interwiki.

◆ getNamespace()

TitleValue::getNamespace ( )
Since
1.23
Returns
int

Implements MediaWiki\Linker\LinkTarget.

Definition at line 218 of file TitleValue.php.

References $namespace.

Referenced by isSameLinkAs().

◆ getText()

TitleValue::getText ( )

Returns the title in text form, without namespace prefix or fragment.

Since
1.23

This is computed from the DB key by replacing any underscores with spaces.

Note
To get a title string that includes the namespace and/or fragment, use a TitleFormatter.
Returns
string

Implements MediaWiki\Linker\LinkTarget.

Definition at line 270 of file TitleValue.php.

◆ hasFragment()

TitleValue::hasFragment ( )
Since
1.27
Returns
bool

Implements MediaWiki\Linker\LinkTarget.

Definition at line 243 of file TitleValue.php.

◆ inNamespace()

TitleValue::inNamespace (   $ns)
Since
1.27
Parameters
int$ns
Returns
bool

Implements MediaWiki\Linker\LinkTarget.

Definition at line 227 of file TitleValue.php.

◆ isExternal()

TitleValue::isExternal ( )

Whether it has an interwiki part.

Since
1.27
Returns
bool

Implements MediaWiki\Linker\LinkTarget.

Definition at line 297 of file TitleValue.php.

◆ isSameLinkAs()

◆ newFromPage()

static TitleValue::newFromPage ( PageReference  $page)
static

Constructs a TitleValue from a local PageReference.

Note
The PageReference may belong to another wiki. In that case, the resulting TitleValue is also logically bound to that other wiki. No attempt is made to map the PageReference wiki ID to an interwiki prefix for the TitleValue.
Since
1.36
Parameters
PageReference$page
Returns
TitleValue

Definition at line 119 of file TitleValue.php.

References Page\PageReference\getDBkey(), and Page\PageReference\getNamespace().

Referenced by castPageToLinkTarget(), MediaWiki\Rest\Handler\ParsoidHTMLHelper\createPageConfig(), WatchedItem\getLinkTarget(), MediaWiki\Permissions\UserAuthority\internalCan(), MergeHistory\merge(), and MediaWiki\Watchlist\WatchlistManager\setWatch().

◆ tryNew()

static TitleValue::tryNew (   $namespace,
  $title,
  $fragment = '',
  $interwiki = '' 
)
static

Constructs a TitleValue, or returns null if the parameters are not valid.

Note
This does not perform any normalization, and only basic validation. For full normalization and validation, use TitleParser::makeTitleValueSafe().
Parameters
int$namespaceThe namespace ID. This is not validated.
string$titleThe page title in either DBkey or text form. No normalization is applied beyond underscore/space conversion.
string$fragmentThe fragment title. Use '' to represent the whole page. No validation or normalization is applied.
string$interwikiThe interwiki component. No validation or normalization is applied.
Returns
TitleValue|null
Exceptions
InvalidArgumentException

Definition at line 94 of file TitleValue.php.

References $fragment, $interwiki, $namespace, and $title.

Referenced by LinkCache\getGoodLinkRow(), MediaWiki\Block\UnblockUser\log(), ApiQueryWatchlistRaw\run(), Linker\userLink(), and Linker\userTalkLink().

Member Data Documentation

◆ $dbkey

string TitleValue::$dbkey
protected
Deprecated:
in 1.31. This class is immutable. Use the getter for access.

Definition at line 52 of file TitleValue.php.

Referenced by getDBkey().

◆ $fragment

string TitleValue::$fragment
protected
Deprecated:
in 1.31. This class is immutable. Use the getter for access.

Definition at line 58 of file TitleValue.php.

Referenced by __construct(), __toString(), assertValidSpec(), createFragmentTarget(), getFragment(), and tryNew().

◆ $interwiki

string TitleValue::$interwiki
protected
Deprecated:
in 1.31. This class is immutable. Use the getter for access.

Definition at line 64 of file TitleValue.php.

Referenced by __construct(), assertValidSpec(), getInterwiki(), and tryNew().

◆ $namespace

int TitleValue::$namespace
protected
Deprecated:
in 1.31. This class is immutable. Use the getter for access.

Definition at line 46 of file TitleValue.php.

Referenced by __construct(), assertValidSpec(), getNamespace(), and tryNew().

◆ $prefixedText

string TitleValue::$prefixedText = null

Text form including namespace/interwiki, initialised on demand.

Only public to share cache with TitleFormatter

Access: internal

Definition at line 74 of file TitleValue.php.


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