Move wgContLang from config to injectable
authorStanislav Malyshev <smalyshev@gmail.com>
Tue, 26 Apr 2016 22:32:13 +0000 (15:32 -0700)
committerStanislav Malyshev <smalyshev@gmail.com>
Wed, 27 Apr 2016 18:55:17 +0000 (11:55 -0700)
Change-Id: Iffdc39f2de7d38ee9ef882bb796e8969e95e75c6

includes/ServiceWiring.php
includes/search/SearchEngine.php
includes/search/SearchEngineConfig.php
includes/search/SearchNearMatcher.php

index d53396f..c02b06e 100644 (file)
@@ -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 ) {
index 3d2057c..be5ab92 100644 (file)
@@ -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 );
        }
 
        /**
index 3d996ba..90f85c3 100644 (file)
@@ -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();
index bb7cd57..0400021 100644 (file)
@@ -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 ];