mwstake/mediawiki-component-manifestregistry

提供类和服务以与 MediaWiki 清单中的注册表交互

2.1.3 2023-04-18 11:34 UTC

This package is auto-updated.

Last update: 2024-09-11 08:18:07 UTC


README

MediaWiki 的 ManifestRegistry

提供对 extension.json 文件中 attribute 部分注册的所有项目的综合注册表。

此代码旨在在 MediaWiki 应用程序上下文中执行。不打算单独使用。

在 MediaWiki 扩展中使用

"mwstake/mediawiki-component-manifestregistry": "~2.0" 添加到您的 composer.json 文件的 require 部分。

从 2.0 版本开始需要显式初始化。这可以通过以下方式实现:

  • 在您的 extension.json/skin.json 中添加 "callback": "mwsInitComponents"
  • 或者在您扩展/皮肤的自定义 callback 方法中调用 mwsInitComponents();

也请参阅 mwstake/mediawiki-componentloader.

在 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,
}

在您的代码中实现

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

配置

  • mwsgManifestRegistryOverrides: 用于通过添加、删除或合并其值来覆盖现有注册表

示例 1

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