Configuration variables should never be accessed as global variables. Ideally, configuration is injected, individually or via a ServiceOptions instance or as a Config object. Where injection is not currently possible, configuration needs to be accessed via the main Config object obtained from the global service container: MediaWikiServices::getInstance()->getMainConfig()->get( 'SomeOption' ).
Description
Details
Event Timeline
Status: Thomas' patch addressed many places where global variables were used to access configuration variables, but there are still quite a few left. Most of the remaining cases either write to the global variable, or the code is executed in a phpunit data provider, which causes any access to the MediawikiServices singleton to trigger warnings.
Change 753991 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] SettingsBuilder: allow maintenance scripts to manipulate config
Change 753991 merged by jenkins-bot:
[mediawiki/core@master] SettingsBuilder: allow maintenance scripts to manipulate config
Change 757960 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] Remove access to config globals from includes/debug/logger
Change 757961 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] Remove access to config globals from includes/exception
Change 757963 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] remove access to config globals from includes/parser
Change 757965 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] remove access to config globals from Title
Change 757966 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] remove access to config globals from FauxResponse
Change 757967 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] remove access to config globals from more classes
Change 757966 merged by jenkins-bot:
[mediawiki/core@master] remove access to config globals from FauxResponse
Change 757963 merged by jenkins-bot:
[mediawiki/core@master] remove access to config globals from includes/parser
Change 763956 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] Pass SettingsBuilder into config callbacks.
Change 764448 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] Split default variable initialization out of Setup.php
Change 763956 merged by jenkins-bot:
[mediawiki/core@master] Pass SettingsBuilder into config callbacks.
Change 764448 abandoned by Simetrical:
[mediawiki/core@master] Split default variable initialization out of Setup.php
Reason:
This was landed elsewhere: I931b92357ec48db4665891c8546f86264885e881
Change 787531 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):
[mediawiki/extensions/FileImporter@master] Replace MediaWikiTitleCodec with TitleParser mock
Change 787531 merged by jenkins-bot:
[mediawiki/extensions/FileImporter@master] Replace MediaWikiTitleCodec with TitleParser mock
Change 757967 merged by jenkins-bot:
[mediawiki/core@master] Remove access to config globals from more classes
Change 787798 had a related patch set uploaded (by Umherirrender; author: Umherirrender):
[mediawiki/core@master] config: Do not get wgInitialSessionId and wgCommandLineMode from config
Change 757961 merged by jenkins-bot:
[mediawiki/core@master] Remove access to config globals from includes/exception
Change 806436 had a related patch set uploaded (by Daniel Kinzler; author: Daniel Kinzler):
[mediawiki/core@master] PHPUnit: introduce overrideConfigValues.
Change 806436 merged by jenkins-bot:
[mediawiki/core@master] PHPUnit: introduce overrideConfigValues.
Change 787798 abandoned by Umherirrender:
[mediawiki/core@master] config: Do not get wgInitialSessionId and wgCommandLineMode from config
Reason:
I just want to avoid the access, not the globals.
Change 878198 had a related patch set uploaded (by D3r1ck01; author: Derick Alangi):
[mediawiki/extensions/MobileFrontend@master] tests: Move away from using $GLOBALS for configs
Change 878198 merged by jenkins-bot:
[mediawiki/extensions/MobileFrontend@master] tests: Move away from using $GLOBALS for configs