Extension:BetaFeatures/zh

测试功能扩展允许其他MediaWiki扩展向wiki用户提供测试反馈. 它通过用户设置界面和一些特殊页面记载测试中的一些数据.

对您的扩展使用新钩子
Using this extension to support your beta feature is easy. Register a hook of type "GetBetaFeaturePreferences" in your extension.json file — the syntax is almost identical to the hook, with small changes to support the type of preference we need in this case.

In :

In :

Then, you can use the convenience function provided by BetaFeatures to check whether the feature is enabled.

You can also use a normal preference check, but don't check against truthy or falsy values - use the values from the HTMLFeatureField class.

Because the BetaFeatures class should be present everywhere, you could use the convenience function in any hook, special page, or anything else you wanted. Just be aware of potential performance or caching issues you may introduce with those changes.

If you want to also use your extension without BetaFeatures, you should also check for its existence, e.g.:

Configuration
The  config variable can be used to limit which beta features are shown in preferences. By default it is empty, and all beta features are shown.

If it is used then in order for a beta feature to show up in the preferences it needs to be listed in the whitelist. This config variable accepts an array of strings. Each string should be the name of a beta feature as specified in the preference definition passed to. For example, in the code given above, the name of the beta feature is, so you would need to add that string to the   array in your wiki configs.

高级用法
想尝试更酷的玩法？！

自动参与组
With this example, we register a preference that's an "auto-enroll" one - if a user checks this, and new features come out that are in a particular group, the user will be automatically enrolled in those features.

附属管理
Next up, we can actually define dependency management per-feature. To do this we first register the name of a hook that we want to use for this with the hook "GetBetaFeatureDependencyHooks", then we register a hook of that type that checks some dependency, and returns true if it's met or false if not.

You can abuse use this feature to do per-wiki disabling of features, if they're marked as dependent. But that sounds really hacky. You probably shouldn't. I can hear you thinking about it right now, just stop it.

数据库填充
There's a database table defined, and used, by BetaFeatures. But you might get confused by it if you try to use it locally.

We use the job queue to run updates for this table, when the cache expires (30 minutes TTL). If your wiki is configured to run jobs on each request, this will make about one request every 30 minutes reeeeeeally slow, but the rest will be relatively fast. If you configure your wiki to run jobs via cron, things will work much better.

参见

 * 测试功能
 * 路线图
 * 先行计划