This page is a translated version of the page Developer hub and the translation is 100% complete.
  • 用户
  • 系统管理员
  • 开发者
  • 翻译人员


這是一個高级的MediaWiki开发的概述,包括关键文件的連結、资源、和MediaWiki开发者的可用工具。它是为已使用过MediaWiki的熟练LAMP 程序员写的

概要

MediaWiki是维基百科與其姊妹项目,还有世界各地数以千计的维基网站使用的软件。

MediaWiki以PHP编程语言书写[1]。 它使用jQuery作为客户端JavaScript库。

MediaWiki主要为LAMP平台开发[2],并可以在大多数操作系统上运行。 MediaWiki首要使用MySQL与MariaDB数据库服务器。[3]

开发以开源形式进行[4], 儘管志願者社區開發人員也發揮了很大的作用,但它在很大程度上是在線協調的,並得到了Wikimedia基金會的支持。

  • 开发讨论可以在各种邮件列表IRC 频道中。 主要开发者列表为wikitech-l,主要的开发者 IRC 频道为#mediawiki 連線
  • 源代码 使用Git版本控制系统进行管理。[5]
  • 大多数项目代码审查Gerrit 执行。参考这个入门以配置Git和Gerrit来提交补丁。
  • 漏洞报告与任务是在Phabricator 中管理的。
  • MediaWiki中的开发者扩展接口(而不修改核心代码)有几种便捷的扩展方式,包括 API钩子系统和皮肤——请参阅本页的Extending MediaWiki 段落了解概要。

主要文档

编码、开发和规范

调试和测试

架构

子系统

  • API——MediaWiki的API对包含在MediaWiki数据库中的数据,提供了直接、高级别的访问。
  • 内容处理器 – MediaWiki在支持页面內容的自定义型態的框架。
  • 数据库访问 – 在MediaWiki中使用数据库的综述,包括一個数据库抽象层的简明指南。
  • 手册:作业队列 – MediaWiki對长时间任务异步运行的框架。
  • Messages API – MediaWiki在通过PHP或JavaScript提供本地化程序消息的框架。

扩展MediaWiki

MediaWiki已設計為允許修改但无须改动核心代码。这也使得用户可以很方便地升级MediaWiki而无须手动把自己的修改重新加入到舊的擴展功能的代码中。有六个主要的擴展點可以让开发人员改變或擴大MediaWiki所能做的事。这些扩展点分别是:

  • API—通过其web API,访问MediaWiki实例的数据和元数据
  • Hooks – 每次一個既定的事件發生時,會去做某些事。
  • 解析器函数 – 添加自定义的指令,例如:{{#if:...|...|...}}
  • 皮肤 – 改變MediaWiki的外观和感覺。
  • 特殊页面 – 添加一個新的特殊页面。
  • 标签扩展 – 添加一個新的标签,例如:‎<newtag>...‎</newtag>
  • Extending wiki markup – 添加一個解析器钩子来修改维基文本的内容。

扩展功能的开发人员的帮助文档

皮肤的开发人员的帮助文档

函式庫代码重複利用的帮助文档

备注

  1. 不是所有MediaWiki代码都由PHP书写。一些支持工具是用其他语言书写的,包括批处理文件shell脚本makefilesPython
  2. MediaWiki可以运行在大多数支持PHP的平台上,然而在非LAMP平台上,由于缺少某些实用工具或操作系统功能,可能会限制MediaWiki的功能或性能。
  3. MediaWiki此外支持DBMS,包括PostgreSQL以及SQLite等。
  4. 开发者是志愿者和多个组织的带薪职员(或承包商)的组合。有關使用MediaWiki代碼的人員的完整列表,請閱讀开发人员 文章。
  5. Gerrit浏览源代码和代码存储库的修订,或使用Gerrit 下载源代码至您的系统。