I ran into some issues when working on T270846. When using the following partial extension.json and properly autoloaded CentralAuthAbuseFilterHooks.php:
{ "Hooks": { "AbuseFilter-builder": "abusefilter" }, "HookHandlers": { "abusefilter": { "class": "CentralAuthAbuseFilterHooks" } } }
<?php use MediaWiki\Extension\AbuseFilter\Hooks\AbuseFilterBuilderHook; /** * CentralAuth hook runners for the AbuseFilter extension */ class CentralAuthAbuseFilterHooks implements AbuseFilterBuilderHook { /** * Tell AbuseFilter about our global_user_groups variable * * @param array $realValues * * @return bool */ public function onAbuseFilterBuilder( array &$realValues ) { // Uses: 'abusefilter-edit-builder-vars-global-user-groups' $builderValues['vars']['global_user_groups'] = 'global-user-groups'; return true; } }
Now when I navigate to http://a.mediawiki.test/wiki/Special:AbuseFilter/new I will see the following exception:
[e3d59c98a38d9cea530c97ff] /wiki/Special:AbuseFilter/new Error from line 163 of /home/taavi/src/mediawiki/includes/HookContainer/HookContainer.php: Call to undefined method CentralAuthAbuseFilterHooks::onAbuseFilter-builder()
Backtrace:
#0 /home/taavi/src/mediawiki/extensions/AbuseFilter/includes/Hooks/AbuseFilterHookRunner.php(67): MediaWiki\HookContainer\HookContainer->run(string, array)
#1 /home/taavi/src/mediawiki/extensions/AbuseFilter/includes/KeywordsManager.php(217): MediaWiki\Extension\AbuseFilter\Hooks\AbuseFilterHookRunner->onAbuseFilterBuilder(array)
#2 /home/taavi/src/mediawiki/extensions/AbuseFilter/includes/EditBoxBuilder.php(133): MediaWiki\Extension\AbuseFilter\KeywordsManager->getBuilderValues()
#3 /home/taavi/src/mediawiki/extensions/AbuseFilter/includes/View/AbuseFilterViewEdit.php(378): MediaWiki\Extension\AbuseFilter\EditBoxBuilder->buildEditBox(string, boolean)
#4 /home/taavi/src/mediawiki/extensions/AbuseFilter/includes/View/AbuseFilterViewEdit.php(178): MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewEdit->buildFilterEditor(NULL, MediaWiki\Extension\AbuseFilter\Filter\MutableFilter, NULL, NULL)
#5 /home/taavi/src/mediawiki/extensions/AbuseFilter/includes/special/SpecialAbuseFilter.php(145): MediaWiki\Extension\AbuseFilter\View\AbuseFilterViewEdit->show()
#6 /home/taavi/src/mediawiki/includes/specialpage/SpecialPage.php(645): SpecialAbuseFilter->execute(string)
#7 /home/taavi/src/mediawiki/includes/specialpage/SpecialPageFactory.php(1404): SpecialPage->run(string)
#8 /home/taavi/src/mediawiki/includes/MediaWiki.php(310): MediaWiki\SpecialPage\SpecialPageFactory->executePath(Title, RequestContext)
#9 /home/taavi/src/mediawiki/includes/MediaWiki.php(945): MediaWiki->performRequest()
#10 /home/taavi/src/mediawiki/includes/MediaWiki.php(548): MediaWiki->main()
#11 /home/taavi/src/mediawiki/index.php(53): MediaWiki->run()
#12 /home/taavi/src/mediawiki/index.php(46): wfIndexMain()
#13 {main}onAbuseFilter-builder() isn't a valid PHP method name and AbuseFilterBuilderHook suggests gives the following signature:
public function onAbuseFilterBuilder( array &$realValues );