* @return Title
*/
public static function newFromLinkTarget( LinkTarget $linkTarget ) {
+ if ( $linkTarget instanceof Title ) {
+ // Special case if it's already a Title object
+ return $linkTarget;
+ }
return self::makeTitle(
$linkTarget->getNamespace(),
$linkTarget->getText(),
* @return Title|null Title or null on an error.
*/
public static function newFromText( $text, $defaultNamespace = NS_MAIN ) {
- if ( is_object( $text ) ) {
- throw new InvalidArgumentException( '$text must be a string.' );
- }
// DWIM: Integers can be passed in here when page titles are used as array keys.
if ( $text !== null && !is_string( $text ) && !is_int( $text ) ) {
- wfDebugLog( 'T76305', wfGetAllCallers( 5 ) );
- return null;
+ throw new InvalidArgumentException( '$text must be a string.' );
}
if ( $text === null ) {
return null;
return $title;
}
- /**
- * Extract a redirect destination from a string and return the
- * Title, or null if the text doesn't contain a valid redirect
- * This will only return the very next target, useful for
- * the redirect table and other checks that don't need full recursion
- *
- * @param string $text Text with possible redirect
- * @return Title The corresponding Title
- * @deprecated since 1.21, use Content::getRedirectTarget instead.
- */
- public static function newFromRedirect( $text ) {
- ContentHandler::deprecated( __METHOD__, '1.21' );
-
- $content = ContentHandler::makeContent( $text, null, CONTENT_MODEL_WIKITEXT );
- return $content->getRedirectTarget();
- }
-
- /**
- * Extract a redirect destination from a string and return the
- * Title, or null if the text doesn't contain a valid redirect
- * This will recurse down $wgMaxRedirects times or until a non-redirect target is hit
- * in order to provide (hopefully) the Title of the final destination instead of another redirect
- *
- * @param string $text Text with possible redirect
- * @return Title
- * @deprecated since 1.21, use Content::getUltimateRedirectTarget instead.
- */
- public static function newFromRedirectRecurse( $text ) {
- ContentHandler::deprecated( __METHOD__, '1.21' );
-
- $content = ContentHandler::makeContent( $text, null, CONTENT_MODEL_WIKITEXT );
- return $content->getUltimateRedirectTarget();
- }
-
- /**
- * Extract a redirect destination from a string and return an
- * array of Titles, or null if the text doesn't contain a valid redirect
- * The last element in the array is the final destination after all redirects
- * have been resolved (up to $wgMaxRedirects times)
- *
- * @param string $text Text with possible redirect
- * @return Title[] Array of Titles, with the destination last
- * @deprecated since 1.21, use Content::getRedirectChain instead.
- */
- public static function newFromRedirectArray( $text ) {
- ContentHandler::deprecated( __METHOD__, '1.21' );
-
- $content = ContentHandler::makeContent( $text, null, CONTENT_MODEL_WIKITEXT );
- return $content->getRedirectChain();
- }
-
/**
* Get the prefixed DB key associated with an ID
*
* specified fragment before setting, so it assumes you're passing it with
* an initial "#".
*
- * Deprecated for public use, use Title::makeTitle() with fragment parameter.
+ * Deprecated for public use, use Title::makeTitle() with fragment parameter,
+ * or Title::createFragmentTarget().
* Still in active use privately.
*
* @private
$this->mFragment = strtr( substr( $fragment, 1 ), '_', ' ' );
}
+ /**
+ * Creates a new Title for a different fragment of the same page.
+ *
+ * @since 1.27
+ * @param string $fragment
+ * @return Title
+ */
+ public function createFragmentTarget( $fragment ) {
+ return self::makeTitle(
+ $this->getNamespace(),
+ $this->getText(),
+ $fragment,
+ $this->getInterwiki()
+ );
+
+ }
+
/**
* Prefix some arbitrary text with the namespace or interwiki prefix
* of this object