Hooks: Use new style hook registration to allow for DI

Implement RecentChange_saveHook interface and pass Config via hook handler
declaration in extension.json.

Change-Id: I2bc5950eb6fc066b2f2a83ea84b700d02b075de9
This commit is contained in:
Kosta Harlan 2020-06-03 11:20:46 +02:00 committed by Tim Starling
parent e080bbbfd3
commit efecfc07dc
2 changed files with 23 additions and 8 deletions

View file

@ -460,9 +460,15 @@
"GetNewMessagesAlert": "EchoHooks::abortNewMessagesAlert",
"LinksUpdateAfterInsert": "EchoHooks::onLinksUpdateAfterInsert",
"SpecialMuteModifyFormFields": "EchoHooks::onSpecialMuteModifyFormFields",
"RecentChange_save": "EchoHooks::onRecentChangeSave",
"RecentChange_save": "main",
"ApiMain::moduleManager": "EchoHooks::onApiMainModuleManager"
},
"HookHandlers": {
"main": {
"class": "\\EchoHooks",
"services": [ "MainConfig" ]
}
},
"config": {
"EchoEnableEmailBatch": {
"value": true

View file

@ -1,5 +1,6 @@
<?php
use MediaWiki\Hook\RecentChange_saveHook;
use MediaWiki\Logger\LoggerFactory;
use MediaWiki\MediaWikiServices;
use MediaWiki\Preferences\MultiTitleFilter;
@ -8,11 +9,19 @@ use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Storage\EditResult;
use MediaWiki\User\UserIdentity;
class EchoHooks {
class EchoHooks implements RecentChange_saveHook {
/**
* @var RevisionRecord
*/
private static $lastRevertedRevision = null;
/**
* @var Config
*/
private $config;
public function __construct( Config $config ) {
$this->config = $config;
}
/**
* @param array &$defaults
@ -1639,13 +1648,12 @@ class EchoHooks {
}
/**
* Handler for RecentChange_save hook
*
* @param RecentChange $change The change that has just been made to the wiki
* @param RecentChange $change
* @return bool|void
* @throws MWException
*/
public static function onRecentChangeSave( RecentChange $change ) {
global $wgEchoWatchlistNotifications;
if ( !$wgEchoWatchlistNotifications ) {
public function onRecentChange_save( $change ) {
if ( !$this->config->get( 'EchoWatchlistNotifications' ) ) {
return;
}
if ( $change->getAttribute( 'rc_minor' ) ) {
@ -1685,4 +1693,5 @@ class EchoHooks {
);
}
}
}