Php 跟踪文章的任何更改(Mediawiki 1.23)

Php 跟踪文章的任何更改(Mediawiki 1.23),php,hook,mediawiki,mediawiki-extensions,Php,Hook,Mediawiki,Mediawiki Extensions,我是Mediawiki的新手 我有数据库记录链接到文章内容的一些元素。数据库中的数据完全依赖于文章的内容,并且必须在相应元素发生更改时进行更新。有些提供了所需功能的一部分,但我不确定它是否是正确的解决方案,因为我必须为同一个任务使用几个不同的挂钩,而且在这种琐碎的情况下看起来太复杂了 我怎样才能用最合适的方式做到这一点 我正在使用page_id链接到数据库中的文章。在这种情况下正确吗 对于所有必须更新数据库的情况,我必须使用什么mediawiki挂钩?目前,我希望使用以下内容: 条款插入完成

我是Mediawiki的新手

我有数据库记录链接到文章内容的一些元素。数据库中的数据完全依赖于文章的内容,并且必须在相应元素发生更改时进行更新。有些提供了所需功能的一部分,但我不确定它是否是正确的解决方案,因为我必须为同一个任务使用几个不同的挂钩,而且在这种琐碎的情况下看起来太复杂了

我怎样才能用最合适的方式做到这一点

我正在使用page_id链接到数据库中的文章。在这种情况下正确吗

对于所有必须更新数据库的情况,我必须使用什么mediawiki挂钩?目前,我希望使用以下内容:

  • 条款插入完成
  • ArticleDeleteComplete
  • 条款修订未删除
  • PageContentSaveComplete
  • 项目回滚完成
  • 文章合并完成

或者如何捕捉最近的更改?

您是对的,没有一个钩子可以为页面上可能发生的任何更改运行代码。这有两个相关原因:

  • 有无数的路径可能会改变一个页面:并非所有路径都在核心中,有些路径是由扩展提供的;更改可能来自另一个页面(例如模板);或者甚至是另一个wiki(例如,一个文件存储库,或者甚至是一个你需要转移的模板)
  • 以相同的方式处理所有情况不是一个好主意,因为某些更新可以安全地忽略,其他更新可能会杀死您的wiki如果批量完成,应该在作业队列中延迟,其他更新必须立即运行
  • 因此,是的,您必须找出所有的钩子(对于core来说,您的列表已经是一个很好的清单;您安装的每个扩展都需要修改)。如果您需要的更新类型总是相同的,那么您可以对所有挂钩使用相同的函数,这样重复就最小了