Merge "Simplify HTMLTitleTextField::validate"
[lhc/web/wiklou.git] / includes / search / SearchEngine.php
index 30c2271..ad9f934 100644 (file)
@@ -32,6 +32,8 @@ use MediaWiki\MediaWikiServices;
  * @ingroup Search
  */
 abstract class SearchEngine {
+       const DEFAULT_SORT = 'relevance';
+
        /** @var string */
        public $prefix = '';
 
@@ -49,7 +51,7 @@ abstract class SearchEngine {
 
        /** @var bool */
        protected $showSuggestion = true;
-       private $sort = 'relevance';
+       private $sort = self::DEFAULT_SORT;
 
        /** @var array Feature values */
        protected $features = [];
@@ -232,10 +234,8 @@ abstract class SearchEngine {
         * @return string
         */
        public function normalizeText( $string ) {
-               global $wgContLang;
-
                // Some languages such as Chinese require word segmentation
-               return $wgContLang->segmentByWord( $string );
+               return MediaWikiServices::getInstance()->getContentLanguage()->segmentByWord( $string );
        }
 
        /**
@@ -257,8 +257,8 @@ abstract class SearchEngine {
         * @return SearchNearMatcher
         */
        public function getNearMatcher( Config $config ) {
-               global $wgContLang;
-               return new SearchNearMatcher( $config, $wgContLang );
+               return new SearchNearMatcher( $config,
+                       MediaWikiServices::getInstance()->getContentLanguage() );
        }
 
        /**
@@ -266,8 +266,9 @@ abstract class SearchEngine {
         * @return SearchNearMatcher
         */
        protected static function defaultNearMatcher() {
-               $config = MediaWikiServices::getInstance()->getMainConfig();
-               return MediaWikiServices::getInstance()->newSearchEngine()->getNearMatcher( $config );
+               $services = MediaWikiServices::getInstance();
+               $config = $services->getMainConfig();
+               return $services->newSearchEngine()->getNearMatcher( $config );
        }
 
        /**
@@ -347,13 +348,13 @@ abstract class SearchEngine {
 
        /**
         * Get the valid sort directions.  All search engines support 'relevance' but others
-        * might support more. The default in all implementations should be 'relevance.'
+        * might support more. The default in all implementations must be 'relevance.'
         *
         * @since 1.25
         * @return string[] the valid sort directions for setSort
         */
        public function getValidSorts() {
-               return [ 'relevance' ];
+               return [ self::DEFAULT_SORT ];
        }
 
        /**
@@ -415,8 +416,6 @@ abstract class SearchEngine {
                $withAllKeyword = true,
                $withPrefixSearchExtractNamespaceHook = false
        ) {
-               global $wgContLang;
-
                $parsed = $query;
                if ( strpos( $query, ':' ) === false ) { // nothing to do
                        return false;
@@ -445,7 +444,7 @@ abstract class SearchEngine {
 
                if ( !$allQuery && strpos( $query, ':' ) !== false ) {
                        $prefix = str_replace( ' ', '_', substr( $query, 0, strpos( $query, ':' ) ) );
-                       $index = $wgContLang->getNsIndex( $prefix );
+                       $index = MediaWikiServices::getInstance()->getContentLanguage()->getNsIndex( $prefix );
                        if ( $index !== false ) {
                                $extractedNamespace = [ $index ];
                                $parsed = substr( $query, strlen( $prefix ) + 1 );
@@ -625,9 +624,8 @@ abstract class SearchEngine {
                $results = $this->completionSearchBackendOverfetch( $search );
                $fallbackLimit = 1 + $this->limit - $results->getSize();
                if ( $fallbackLimit > 0 ) {
-                       global $wgContLang;
-
-                       $fallbackSearches = $wgContLang->autoConvertToAllVariants( $search );
+                       $fallbackSearches = MediaWikiServices::getInstance()->getContentLanguage()->
+                               autoConvertToAllVariants( $search );
                        $fallbackSearches = array_diff( array_unique( $fallbackSearches ), [ $search ] );
 
                        foreach ( $fallbackSearches as $fbs ) {