From 82c8c00ce27e836810c58ad99fe420f7f1dab57d Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Tue, 26 Apr 2016 15:32:13 -0700 Subject: [PATCH 1/1] Move wgContLang from config to injectable Change-Id: Iffdc39f2de7d38ee9ef882bb796e8969e95e75c6 --- includes/ServiceWiring.php | 3 ++- includes/search/SearchEngine.php | 3 ++- includes/search/SearchEngineConfig.php | 13 ++++++++++--- includes/search/SearchNearMatcher.php | 10 ++++++++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index d53396f1a2..c02b06e6da 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -88,9 +88,10 @@ return [ }, 'SearchEngineConfig' => function( MediaWikiServices $services ) { + global $wgContLang; // Create a search engine config from main config. $config = $services->getService( 'MainConfig' ); - return new SearchEngineConfig( $config ); + return new SearchEngineConfig( $config, $wgContLang ); }, 'SkinFactory' => function( MediaWikiServices $services ) { diff --git a/includes/search/SearchEngine.php b/includes/search/SearchEngine.php index 3d2057c528..be5ab923b5 100644 --- a/includes/search/SearchEngine.php +++ b/includes/search/SearchEngine.php @@ -136,7 +136,8 @@ abstract class SearchEngine { * @return SearchNearMatcher */ public function getNearMatcher( Config $config ) { - return new SearchNearMatcher( $config ); + global $wgContLang; + return new SearchNearMatcher( $config, $wgContLang ); } /** diff --git a/includes/search/SearchEngineConfig.php b/includes/search/SearchEngineConfig.php index 3d996baa6a..90f85c3d28 100644 --- a/includes/search/SearchEngineConfig.php +++ b/includes/search/SearchEngineConfig.php @@ -14,8 +14,15 @@ class SearchEngineConfig { */ private $config; - public function __construct( Config $config ) { + /** + * Current language + * @var Language + */ + private $language; + + public function __construct( Config $config, Language $lang ) { $this->config = $config; + $this->language = $lang; } /** @@ -32,7 +39,7 @@ class SearchEngineConfig { */ public function searchableNamespaces() { $arr = []; - foreach ( $this->config->get( 'ContLang' )->getNamespaces() as $ns => $name ) { + foreach ( $this->language->getNamespaces() as $ns => $name ) { if ( $ns >= NS_MAIN ) { $arr[$ns] = $name; } @@ -99,7 +106,7 @@ class SearchEngineConfig { * @return string[] List of names */ public function namespacesAsText( $namespaces ) { - $formatted = array_map( [ $this->config->get( 'ContLang' ), 'getFormattedNsText' ], $namespaces ); + $formatted = array_map( [ $this->language, 'getFormattedNsText' ], $namespaces ); foreach ( $formatted as $key => $ns ) { if ( empty( $ns ) ) { $formatted[$key] = wfMessage( 'blanknamespace' )->text(); diff --git a/includes/search/SearchNearMatcher.php b/includes/search/SearchNearMatcher.php index bb7cd579be..0400021a1a 100644 --- a/includes/search/SearchNearMatcher.php +++ b/includes/search/SearchNearMatcher.php @@ -11,9 +11,15 @@ class SearchNearMatcher { */ protected $config; - public function __construct( Config $config ) { + /** + * Current language + * @var Language + */ + private $language; + public function __construct( Config $config, Language $lang ) { $this->config = $config; + $this->language = $lang; } /** @@ -47,7 +53,7 @@ class SearchNearMatcher { * @return null|Title */ protected function getNearMatchInternal( $searchterm ) { - $lang = $this->config->get( 'ContLang' ); + $lang = $this->language; $allSearchTerms = [ $searchterm ]; -- 2.20.1