Legoktm has uploaded a new change for review.
https://gerrit.wikimedia.org/r/237975
Change subject: registration: Allow custom prefixes for configuration settings
......................................................................
registration: Allow custom prefixes for configuration settings
Allow extensions which are using "$eg" or any other prefix to migrate.
Extensions can override the default of "wg" by setting a magic "_prefix"
key in the "config" object.
Note that the migration helper script will not be able to automatically
migrate custom-prefixed configuration settings.
Bug: T97186
Change-Id: I79203cd5e3a2405b92ad01da869de3bd3d359d19
---
M docs/extension.schema.json
M includes/registration/ExtensionProcessor.php
M tests/phpunit/includes/registration/ExtensionProcessorTest.php
3 files changed, 23 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/75/237975/1
diff --git a/docs/extension.schema.json b/docs/extension.schema.json
index 14d7c22..610e9c0 100644
--- a/docs/extension.schema.json
+++ b/docs/extension.schema.json
@@ -628,6 +628,13 @@
"config": {
"type": "object",
"description": "Configuration options for this
extension",
+ "properties": {
+ "_prefix": {
+ "type": "string",
+ "default": "wg",
+ "description": "Prefix to put in front
of configuration settings when exporting them to $GLOBALS"
+ }
+ },
"patternProperties": {
"^[a-zA-Z_\u007f-\u00ff][a-zA-Z0-9_\u007f-\u00ff]*$": {
"type": ["object", "array", "string",
"integer", "null", "boolean"],
diff --git a/includes/registration/ExtensionProcessor.php
b/includes/registration/ExtensionProcessor.php
index a5e44fc..0b594b4 100644
--- a/includes/registration/ExtensionProcessor.php
+++ b/includes/registration/ExtensionProcessor.php
@@ -296,9 +296,15 @@
*/
protected function extractConfig( array $info ) {
if ( isset( $info['config'] ) ) {
+ if ( isset( $info['config']['_prefix'] ) ) {
+ $prefix = $info['config']['_prefix'];
+ unset( $info['config']['_prefix'] );
+ } else {
+ $prefix = 'wg';
+ }
foreach ( $info['config'] as $key => $val ) {
if ( $key[0] !== '@' ) {
- $this->globals["wg$key"] = $val;
+ $this->globals["$prefix$key"] = $val;
}
}
}
diff --git a/tests/phpunit/includes/registration/ExtensionProcessorTest.php
b/tests/phpunit/includes/registration/ExtensionProcessorTest.php
index b86279d..ff6be6c 100644
--- a/tests/phpunit/includes/registration/ExtensionProcessorTest.php
+++ b/tests/phpunit/includes/registration/ExtensionProcessorTest.php
@@ -113,11 +113,20 @@
'@IGNORED' => 'yes',
),
) + self::$default;
+ $info2 = array(
+ 'config' => array(
+ '_prefix' => 'eg',
+ 'Bar' => 'somevalue'
+ ),
+ ) + self::$default;
$processor->extractInfo( $this->dir, $info );
+ $processor->extractInfo( $this->dir, $info2 );
$extracted = $processor->getExtractedInfo();
$this->assertEquals( 'somevalue',
$extracted['globals']['wgBar'] );
$this->assertEquals( 10, $extracted['globals']['wgFoo'] );
$this->assertArrayNotHasKey( 'wg@IGNORED',
$extracted['globals'] );
+ // Custom prefix:
+ $this->assertEquals( 'somevalue',
$extracted['globals']['egBar'] );
}
public static function provideExtracttExtensionMessagesFiles() {
--
To view, visit https://gerrit.wikimedia.org/r/237975
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I79203cd5e3a2405b92ad01da869de3bd3d359d19
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: REL1_25
Gerrit-Owner: Legoktm <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits