A few more updates about the RfC after the IRC meeting. In case you
missed it, the logs are at [1].
== Extension locations ==
We agreed that we should require extensions to all be in the same
directory, but that directory should be configurable. By default it will
point to $IP/extensions.
== Setting default configuration values ==
In my initial proposal I had something like:
$wgEnabledExtensions[] = 'Math';
$wgMathSomeOption = 'bar';
$wgEnabledExtensions[] = 'SpamBlacklist';
My plan was when loading the extension.json file, MediaWiki would check
if the config values are set, and if so, don't overwrite it with the
defaults. However since we're using $GLOBALS as the configuration
backend, this opens up a register_globals vulnerability.
What do people think of stopping caring about register_globals (while we
still support 5.3) and being ok with isset($wgWhatever)? Chad was of the
opinion that it's your own fault if you turn on register_globals. :P
A few other options were discussed in the meeting:
wfEnableExtension( 'Math' );
$wgMathSomeOption = 'bar';
Where the function sets the default globals, and then the user
overwrites them. This won't work for when we want to store configuration
in the database since extensions to be loaded are no longer in an array.
Another one was something like:
$wgEnabledExtensions += array( 'Math', 'SpamBlacklist' );
wfLoadExtensions(); // Loads all extensions and sets defaults
// All config values after function call
$wgMathSomeOption = 'bar';
I'm not a huge fan of this one since IMO MediaWiki should do the
extension loading on its own, and not require the user to put a function
call in their configuration.
== Schema ==
I've written a basic JSON schema for extension.json files and put it up
at [2].
[1]
https://www.mediawiki.org/wiki/Architecture_meetings/RFC_review_2014-05-30
[2]
https://www.mediawiki.org/wiki/Requests_for_comment/Extension_registration/…
-- Legoktm