MediaWiki master
index.php
Go to the documentation of this file.
1<?php
2// phpcs:disable Generic.Arrays.DisallowLongArraySyntax
28
29// Bail on old versions of PHP, or if composer has not been run yet to install
30// dependencies. Using dirname( __FILE__ ) here because __DIR__ is PHP5.3+.
31// phpcs:ignore MediaWiki.Usage.DirUsage.FunctionFound
32require_once dirname( __FILE__ ) . '/../includes/PHPVersionCheck.php';
33wfEntryPointCheck( 'html', dirname( dirname( $_SERVER['SCRIPT_NAME'] ) ) );
34
35define( 'MW_CONFIG_CALLBACK', [ Installer::class, 'overrideConfig' ] );
36define( 'MEDIAWIKI_INSTALL', true );
37
38// Resolve relative to regular MediaWiki root
39// instead of mw-config subdirectory.
40chdir( dirname( __DIR__ ) );
41require dirname( __DIR__ ) . '/includes/WebStart.php';
42
44
45function wfInstallerMain() {
47 $request = RequestContext::getMain()->getRequest();
48
49 $installer = InstallerOverrides::getWebInstaller( $request );
50
51 if ( !$installer->startSession() ) {
52 if ( $installer->request->getCheck( 'css' ) ) {
53 // Do not display errors on css pages
54 $installer->outputCss();
55 exit;
56 }
57
58 $errors = $installer->getPhpErrors();
59 $installer->showError( 'config-session-error', $errors[0] );
60 $installer->finish();
61 exit;
62 }
63
64 $fingerprint = $installer->getFingerprint();
65 if ( isset( $_SESSION['installData'][$fingerprint] ) ) {
66 $session = $_SESSION['installData'][$fingerprint];
67 } else {
68 $session = array();
69 }
70
71 $services = MediaWikiServices::getInstance();
72 $languageFactory = $services->getLanguageFactory();
73 $languageNameUtils = $services->getLanguageNameUtils();
74
75 $langCode = 'en';
76 if ( isset( $session['settings']['_UserLang'] ) &&
77 $languageNameUtils->isKnownLanguageTag( $session['settings']['_UserLang'] )
78 ) {
79 $langCode = $session['settings']['_UserLang'];
80 }
81 $uselang = $request->getRawVal( 'uselang' );
82 if ( $uselang !== null && $languageNameUtils->isKnownLanguageTag( $uselang ) ) {
83 $langCode = $uselang;
84 }
85 $wgLang = $languageFactory->getRawLanguage( $langCode );
86
87 RequestContext::getMain()->setLanguage( $wgLang );
88
89 $installer->setParserLanguage( $wgLang );
90
92
93 $session = $installer->execute( $session );
94
95 $_SESSION['installData'][$fingerprint] = $session;
96}
const NS_PROJECT
Definition Defines.php:69
wfEntryPointCheck( $format='text', $scriptPath='/')
Check PHP version and that external dependencies are installed, and display an informative error if e...
if(!defined( 'MW_NO_SESSION') &&MW_ENTRY_POINT !=='cli' $wgLang
Definition Setup.php:570
Group all the pieces relevant to the context of a request into one instance.
Base installer class.
Definition Installer.php:85
Service locator for MediaWiki core services.
$wgCanonicalNamespaceNames
Config variable stub for the CanonicalNamespaceNames setting, for use by phpdoc and IDEs.
$wgMetaNamespace
Config variable stub for the MetaNamespace setting, for use by phpdoc and IDEs.
wfInstallerMain()
Definition index.php:45