diff options
author | C. Scott Ananian <cscott@cscott.net> | 2024-09-13 14:41:58 -0400 |
---|---|---|
committer | C. Scott Ananian <cscott@cscott.net> | 2024-11-15 09:35:49 -0500 |
commit | 19a7c94a36cf5989b183050eb86f5ae118b811e7 (patch) | |
tree | ffc115276912afec0de3adcd27049e298e6a32a2 /includes/search | |
parent | 0b80445440a04a06bf96a6681146ec14d2af448c (diff) | |
download | mediawikicore-19a7c94a36cf5989b183050eb86f5ae118b811e7.tar.gz mediawikicore-19a7c94a36cf5989b183050eb86f5ae118b811e7.zip |
Use ParserOutput::getLinkList() internally
This replaces the internal uses of the deprecated ParserOutput::get*
methods and isolates the ParserOutput internal representation from
most of the users.
Change-Id: I32df68714ffdf2f0745b974f47bc3ccceef1f41c
Diffstat (limited to 'includes/search')
-rw-r--r-- | includes/search/ParserOutputSearchDataExtractor.php | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/includes/search/ParserOutputSearchDataExtractor.php b/includes/search/ParserOutputSearchDataExtractor.php index 4e75487d8c32..4bb0ebea545d 100644 --- a/includes/search/ParserOutputSearchDataExtractor.php +++ b/includes/search/ParserOutputSearchDataExtractor.php @@ -2,8 +2,8 @@ namespace MediaWiki\Search; -use MediaWiki\Category\Category; use MediaWiki\Parser\ParserOutput; +use MediaWiki\Parser\ParserOutputLinkTypes; use MediaWiki\Title\Title; /** @@ -37,9 +37,11 @@ class ParserOutputSearchDataExtractor { public function getCategories( ParserOutput $parserOutput ) { $categories = []; - foreach ( $parserOutput->getCategoryNames() as $key ) { - $name = Category::newFromName( $key )->getName(); - $categories[] = str_replace( '_', ' ', $name ); + foreach ( + $parserOutput->getLinkList( ParserOutputLinkTypes::CATEGORY ) + as [ 'link' => $link ] + ) { + $categories[] = $link->getText(); } return $categories; @@ -65,11 +67,14 @@ class ParserOutputSearchDataExtractor { public function getOutgoingLinks( ParserOutput $parserOutput ) { $outgoingLinks = []; - foreach ( $parserOutput->getLinks() as $linkedNamespace => $namespaceLinks ) { - foreach ( $namespaceLinks as $linkedDbKey => $_ ) { - $outgoingLinks[] = - Title::makeTitle( $linkedNamespace, $linkedDbKey )->getPrefixedDBkey(); - } + foreach ( + $parserOutput->getLinkList( ParserOutputLinkTypes::LOCAL ) + as [ 'link' => $link ] + ) { + // XXX should use a TitleFormatter + // XXX why is this a DBkey when all of the others are text? + $outgoingLinks[] = + Title::newFromLinkTarget( $link )->getPrefixedDBkey(); } return $outgoingLinks; @@ -84,11 +89,13 @@ class ParserOutputSearchDataExtractor { public function getTemplates( ParserOutput $parserOutput ) { $templates = []; - foreach ( $parserOutput->getTemplates() as $tNS => $templatesInNS ) { - foreach ( $templatesInNS as $tDbKey => $_ ) { - $templateTitle = Title::makeTitle( $tNS, $tDbKey ); - $templates[] = $templateTitle->getPrefixedText(); - } + foreach ( + $parserOutput->getLinkList( ParserOutputLinkTypes::TEMPLATE ) + as [ 'link' => $link ] + ) { + // XXX should use a TitleFormatter + $templates[] = + Title::newFromLinkTarget( $link )->getPrefixedText(); } return $templates; |