* Allows to create engine of the specific type.
*/
class SearchEngineFactory {
-
/**
* Configuration for SearchEngine classes.
* @var SearchEngineConfig
$class = $configType;
} else {
$dbr = wfGetDB( DB_REPLICA );
- $class = $dbr->getSearchEngine();
+ $class = self::getSearchEngineClass( $dbr );
}
$search = new $class( $dbr );
return $search;
}
+
+ /**
+ * @param IDatabase $db
+ * @return string SearchEngine subclass name
+ * @since 1.28
+ */
+ public static function getSearchEngineClass( IDatabase $db ) {
+ switch ( $db->getType() ) {
+ case 'sqlite':
+ return 'SearchSqlite';
+ case 'mysql':
+ return 'SearchMySQL';
+ case 'postgres':
+ return 'SearchPostgres';
+ case 'mssql':
+ return 'SearchMssql';
+ case 'oracle':
+ return 'SearchOracle';
+ default:
+ return 'SearchEngineDummy';
+ }
+ }
}
$this->markTestSkipped( "MySQL or SQLite with FTS3 only" );
}
- $searchType = $this->db->getSearchEngine();
+ $searchType = SearchEngineFactory::getSearchEngineClass( $this->db );
$this->setMwGlobals( [
'wgSearchType' => $searchType
] );