Mediawiki从另一个文件调用钩子函数

时间:2015-05-13 21:29:53

标签: php function hook mediawiki

您好我需要在创建新页面时将一些内容保存到MediaWiki中的数据库。 所以我在LocalSettings.php中添加了钩子:

$wgHooks['PageContentSaveComplete'][] ='assign_responsibility';

但我需要从扩展php文件Responsibility.php调用函数assing_responsibility()而不是LocalSettings。 我是Mediawiki系统的新手,我无法找到如何告诉MediaWiki哪里可以找到所需的钩子功能? 谢谢

1 个答案:

答案 0 :(得分:4)

钩子值是PHP callables;只要在调用钩子之前加载文件,就可以在任何文件中定义它们(或者,如果使用类方法而不是全局函数,则通过$wgAutoloadClasses注册该类)。

惯例是你的扩展(我假设称为责任)创建一个钩子文件:

// ResponsibilityHooks.php
class ResponsibilityHooks {
    public static function onPageContentSaveComplete(/*...*/) { /*...*/ }
    // ...
}

并确保它可以自动加载:

// Responsibility.php
$wgHooks['PageContentSaveComplete'][] = 'ResponsibilityHooks::onPageContentSaveComplete';   
$wgAutoloadClasses['ResponsibilityHooks'] = __DIR__ . '/ResponsibilityHooks.php';