Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
InstallerOverrides
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 4
42
0.00% covered (danger)
0.00%
0 / 1
 getOverrides
0.00% covered (danger)
0.00%
0 / 10
0.00% covered (danger)
0.00%
0 / 1
12
 getLocalSettingsGenerator
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getWebInstaller
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getCliInstaller
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3/**
4 * MediaWiki installer overrides. See mw-config/overrides/README for details.
5 *
6 * @license GPL-2.0-or-later
7 * @file
8 */
9
10namespace MediaWiki\Installer;
11
12use MediaWiki\Request\WebRequest;
13
14/**
15 * @since 1.20
16 */
17class InstallerOverrides {
18    /** @return array<string,class-string> */
19    private static function getOverrides(): array {
20        static $overrides;
21
22        if ( !$overrides ) {
23            $overrides = [
24                'LocalSettingsGenerator' => LocalSettingsGenerator::class,
25                'WebInstaller' => WebInstaller::class,
26                'CliInstaller' => CliInstaller::class,
27            ];
28            foreach ( glob( MW_INSTALL_PATH . '/mw-config/overrides/*.php' ) as $file ) {
29                require $file;
30            }
31        }
32
33        return $overrides;
34    }
35
36    /**
37     * Instantiates and returns an instance of LocalSettingsGenerator or its descendant classes
38     * @param Installer $installer
39     * @return LocalSettingsGenerator
40     */
41    public static function getLocalSettingsGenerator( Installer $installer ) {
42        $className = self::getOverrides()['LocalSettingsGenerator'];
43        return new $className( $installer );
44    }
45
46    /**
47     * Instantiates and returns an instance of WebInstaller or its descendant classes
48     * @param WebRequest $request
49     * @return WebInstaller
50     */
51    public static function getWebInstaller( WebRequest $request ) {
52        $className = self::getOverrides()['WebInstaller'];
53        return new $className( $request );
54    }
55
56    /**
57     * Instantiates and returns an instance of CliInstaller or its descendant classes
58     * @param string $siteName
59     * @param string|null $admin
60     * @param array $options
61     * @return CliInstaller
62     */
63    public static function getCliInstaller( $siteName, $admin = null, array $options = [] ) {
64        $className = self::getOverrides()['CliInstaller'];
65        return new $className( $siteName, $admin, $options );
66    }
67}