installer: Add support for PlatformSettings.php

PlatformSettings.php is a standardized and recommended way for
re-distributors and packagers of MediaWiki to be able to tune
DefaultSettings.php as appropriate.

If includes/PlatformSettings.php exists, the installer will
automatically include it as part of the generated LocalSettings.php.

The main advantage of this system is that if the distributor wants to
change the default settings, all users will benefit immediately. And if
people want a vanilla MediaWiki experience, they can just remove the
inclusion from their LocalSettings.php.

This RfC
(<https://www.mediawiki.org/wiki/Requests_for_comment/PlatformSettings.php>)
was approved by TechCom.

Bug: T182020
Change-Id: I34f9a4acbe86b9c5c80ac16451b317ce5f6640f9
This commit is contained in:
Kunal Mehta 2018-04-02 15:27:18 -07:00 committed by Krinkle
parent b33bc40e40
commit 50212e6d0e
2 changed files with 16 additions and 4 deletions

View file

@ -87,10 +87,15 @@ which the user can edit by hand thereafter. It's just a plain old PHP file,
and can contain any PHP statements. It usually sets global variables that are
used for configuration, and includes files used by any extensions.
Distributors can easily change the installer behavior, including LocalSettings
generated, by placing their overrides into mw-config/overrides directory. Doing
that is highly preferred to modifying MediaWiki code directly. See
mw-config/overrides/README for more details and examples.
Distributors can easily change the default settings by creating
includes/PlatformSettings.php with overrides/additions to the default settings.
The installer will automatically include the platform defaults when generating
the user's LocalSettings.php file.
Furthermore, distributors can change the installer behavior, by placing their
overrides into mw-config/overrides directory. Doing that is highly preferred
to modifying MediaWiki code directly. See mw-config/overrides/README for more
details and examples.
There's a new maintenance/install.php script which could be used for performing
an install through the command line.

View file

@ -299,6 +299,12 @@ class LocalSettingsGenerator {
}
$mcservers = $this->buildMemcachedServerList();
if ( file_exists( dirname( __DIR__ ) . '/PlatformSettings.php' ) ) {
$platformSettings = "\n## Include platform/distribution defaults";
$platformSettings .= "\nrequire_once \"\$IP/includes/PlatformSettings.php\";";
} else {
$platformSettings = '';
}
return "<?php
# This file was automatically generated by the MediaWiki {$GLOBALS['wgVersion']}
@ -316,6 +322,7 @@ class LocalSettingsGenerator {
if ( !defined( 'MEDIAWIKI' ) ) {
exit;
}
{$platformSettings}
## Uncomment this to disable output compression
# \$wgDisableOutputCompression = true;