aboutsummaryrefslogtreecommitdiffstats
path: root/includes/search
diff options
context:
space:
mode:
authorC. Scott Ananian <cscott@cscott.net>2024-09-13 14:41:58 -0400
committerC. Scott Ananian <cscott@cscott.net>2024-11-15 09:35:49 -0500
commit19a7c94a36cf5989b183050eb86f5ae118b811e7 (patch)
treeffc115276912afec0de3adcd27049e298e6a32a2 /includes/search
parent0b80445440a04a06bf96a6681146ec14d2af448c (diff)
downloadmediawikicore-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.php35
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;