MediaWiki REL1_31
SearchEngineFactory.php
Go to the documentation of this file.
1<?php
2
4
14 private $config;
15
16 public function __construct( SearchEngineConfig $config ) {
17 $this->config = $config;
18 }
19
25 public function create( $type = null ) {
26 $dbr = null;
27
28 $configType = $this->config->getSearchType();
29 $alternatives = $this->config->getSearchTypes();
30
31 if ( $type && in_array( $type, $alternatives ) ) {
32 $class = $type;
33 } elseif ( $configType !== null ) {
34 $class = $configType;
35 } else {
37 $class = self::getSearchEngineClass( $dbr );
38 }
39
40 $search = new $class( $dbr );
41 return $search;
42 }
43
49 public static function getSearchEngineClass( IDatabase $db ) {
50 switch ( $db->getType() ) {
51 case 'sqlite':
52 return SearchSqlite::class;
53 case 'mysql':
54 return SearchMySQL::class;
55 case 'postgres':
56 return SearchPostgres::class;
57 case 'mssql':
58 return SearchMssql::class;
59 case 'oracle':
60 return SearchOracle::class;
61 default:
62 return SearchEngineDummy::class;
63 }
64 }
65}
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
Configuration handling class for SearchEngine.
Factory class for SearchEngine.
create( $type=null)
Create SearchEngine of the given type.
__construct(SearchEngineConfig $config)
SearchEngineConfig $config
Configuration for SearchEngine classes.
static getSearchEngineClass(IDatabase $db)
Basic database interface for live and lazy-loaded relation database handles.
Definition IDatabase.php:38
getType()
Get the type of the DBMS, as it appears in $wgDBtype.
const DB_REPLICA
Definition defines.php:25