Skip to content

HamishSlater/mwstake-mediawiki-component-manifestregistry

 
 

Repository files navigation

MediaWiki Stakeholders Group - Components

ManifestRegistry for MediaWiki

Provides a combined registry over all in the attribute section registered things in extension.json files.

This code is meant to be executed within the MediaWiki application context. No standalone usage is intended.

Use in a MediaWiki extension

Add "mwstake/mediawiki-component-manifestregistry": "~2.0" to the require section of your composer.json file.

Since 2.0 explicit initialization is required. This can be archived by

  • either adding "callback": "mwsInitComponents" to your extension.json/skin.json
  • or calling mwsInitComponents(); within you extensions/skins custom callback method

See also mwstake/mediawiki-componentloader.

Register values in extension.json

{
	"attributes": {
		"BlueSpiceFoundation": {
			"RoleRegistry": {
				"admin": "\\BlueSpice\\Permission\\Role\\Admin::factory",
				"editor": "\\BlueSpice\\Permission\\Role\\Editor::factory",
				"reader": "\\BlueSpice\\Permission\\Role\\Reader::factory",
				"author": "\\BlueSpice\\Permission\\Role\\Author::factory",
				"reviewer": "\\BlueSpice\\Permission\\Role\\Reviewer::factory",
				"accountmanager": "\\BlueSpice\\Permission\\Role\\AccountManager::factory"
			}
		},
		"BlueSpicePrivacy": {
			"CookieConsentNativeMWCookies": {
				"notificationFlag": {
					"group": "necessary",
					"addPrefix": true
				}
			}
		}
	},
	"manifest_version": 2,
}

Implement in your code

$factory = \MediaWiki\MediaWikiServices::getInstance()->getService( 'MWStakeManifestRegistryFactory' );
$registry = $factory->get( 'MyExtensionMyRegistry' );
$myValues = $registry->get( 'subValue' );
$allMyValues = $registry->getAll();

Configuration

  • mwsgManifestRegistryOverrides: Used to overwrite existing registries by either add, remove or merge their values:

Example 1:

$GLOBALS['mwsgManifestRegistryOverrides']['MyRegistry'] = [
	'set' => [
		'ReplaceKey' => 'with new value',
	],
	'merge' => [
		'AddThisKey' => 'with this value',
	],
	'remove' => [ 'keyOfValueThatShouldBeRemoved' ]
]

About

No description, website, or topics provided.

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%