isRedirect() ) { return $this; } // @phan-suppress-next-line PhanTypeMismatchReturnSuperType False positive return $this->getContentHandler()->makeRedirectContent( $target ); } /** * @return Title|null */ public function getRedirectTarget() { if ( $this->redirectTarget !== false ) { return $this->redirectTarget; } $this->redirectTarget = null; $text = $this->getText(); if ( strpos( $text, '/* #REDIRECT */' ) === 0 ) { // Extract the title from the url if ( preg_match( '/title=(.*?)\\\\u0026action=raw/', $text, $matches ) ) { $title = Title::newFromText( urldecode( $matches[1] ) ); if ( $title ) { // Have a title, check that the current content equals what // the redirect content should be if ( $this->equals( $this->getContentHandler()->makeRedirectContent( $title ) ) ) { $this->redirectTarget = $title; } } } } return $this->redirectTarget; } }