/**
* Base code for MediaWiki installer.
*
+ * DO NOT PATCH THIS FILE IF YOU NEED TO CHANGE INSTALLER BEHAVIOR IN YOUR PACKAGE!
+ * See mw-config/overrides/README for details.
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* @file
* @ingroup Deployment
*/
+use MediaWiki\MediaWikiServices;
/**
* This documentation group collects source code files with deployment functionality.
protected $envChecks = [
'envCheckDB',
'envCheckBrokenXML',
- 'envCheckMbstring',
- 'envCheckXML',
'envCheckPCRE',
'envCheckMemory',
'envCheckCache',
'envCheckUploadsDirectory',
'envCheckLibicu',
'envCheckSuhosinMaxValueLength',
- 'envCheckCtype',
- 'envCheckIconv',
- 'envCheckJSON',
];
/**
'wgUseInstantCommons',
'wgUpgradeKey',
'wgDefaultSkin',
+ 'wgPingback',
];
/**
$configOverrides->set( 'MessagesDirs', $messageDirs );
- return new MultiConfig( [ $configOverrides, $baseConfig ] );
+ $installerConfig = new MultiConfig( [ $configOverrides, $baseConfig ] );
+
+ // make sure we use the installer config as the main config
+ $configRegistry = $baseConfig->get( 'ConfigRegistry' );
+ $configRegistry['main'] = function() use ( $installerConfig ) {
+ return $installerConfig;
+ };
+
+ $configOverrides->set( 'ConfigRegistry', $configRegistry );
+
+ return $installerConfig;
}
/**
* Constructor, always call this from child classes.
*/
public function __construct() {
- global $wgMemc, $wgUser;
+ global $wgMemc, $wgUser, $wgObjectCaches;
$defaultConfig = new GlobalVarConfig(); // all the stuff from DefaultSettings.php
$installerConfig = self::getInstallerConfig( $defaultConfig );
// Disable object cache (otherwise CACHE_ANYTHING will try CACHE_DB and
// SqlBagOStuff will then throw since we just disabled wfGetDB)
+ $wgObjectCaches = MediaWikiServices::getInstance()->getMainConfig()->get( 'ObjectCaches' );
$wgMemc = ObjectCache::getInstance( CACHE_NONE );
// Having a user with id = 0 safeguards us from DB access via User::loadOptions().
return true;
}
- /**
- * Environment check for mbstring.func_overload.
- * @return bool
- */
- protected function envCheckMbstring() {
- if ( wfIniGetBool( 'mbstring.func_overload' ) ) {
- $this->showError( 'config-mbstring' );
-
- return false;
- }
-
- if ( !function_exists( 'mb_substr' ) ) {
- $this->showError( 'config-mbstring-absent' );
-
- return false;
- }
-
- return true;
- }
-
- /**
- * Environment check for the XML module.
- * @return bool
- */
- protected function envCheckXML() {
- if ( !function_exists( "utf8_encode" ) ) {
- $this->showError( 'config-xml-bad' );
-
- return false;
- }
-
- return true;
- }
-
/**
* Environment check for the PCRE module.
*
}
}
- /**
- * @return bool
- */
- protected function envCheckCtype() {
- if ( !function_exists( 'ctype_digit' ) ) {
- $this->showError( 'config-ctype' );
-
- return false;
- }
-
- return true;
- }
-
- /**
- * @return bool
- */
- protected function envCheckIconv() {
- if ( !function_exists( 'iconv' ) ) {
- $this->showError( 'config-iconv' );
-
- return false;
- }
-
- return true;
- }
-
- /**
- * @return bool
- */
- protected function envCheckJSON() {
- if ( !function_exists( 'json_decode' ) ) {
- $this->showError( 'config-json' );
-
- return false;
- }
-
- return true;
- }
-
/**
* Environment prep for the server hostname.
*/
$command = $path . DIRECTORY_SEPARATOR . $name;
MediaWiki\suppressWarnings();
- $file_exists = file_exists( $command );
+ $file_exists = is_executable( $command );
MediaWiki\restoreWarnings();
if ( $file_exists ) {