开发者中心
Appearance
This technical manual is intended for developers and technical contributors, and may be difficult for general MediaWiki readers to understand. For general guidance on using MediaWiki, refer to the MediaWiki Handbook.
這是一個高级的MediaWiki开发的概述,包括关键文件的連結、资源、和MediaWiki开发者的可用工具。它是为已使用过MediaWiki的熟练LAMP 程序员写的。
- 如果您想「使用」维基媒体web API,请访问the Developer Portal。
- 如果您希望贡献开发维基媒体软件,请参阅新开发者。
- 要查找开发MediaWiki及其扩展功能的入门指导,请阅读如何成为MediaWiki开发者。
- 如果您想与其他第三方MediaWiki用户合作,MediaWiki利害關係者群組(MWStake)是MediaWiki用户组,由MediaWiki开发人员、系统管理員、用户、顾问和托管供应商共同組成。
概要
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、钩子系统。
主要文档
编码、开发和规范
- 开发方针 – 主要开发策略简介。
- 代码规范——学习MediaWiki中代码规范。
- Security for developers – 了解如何保持MediaWiki系统安全。
- Pre-commit checklist – 在提交代码前,请仔细根据核查表检查相关事项。
- 代码审查手册——MediaWiki代码审查手册,供审查人员使用。
- Technical Decision Making Process – 技术决策流程,在进行重大技术性更改时可以参考。
- Developing libraries – 打包第三方函式庫以用于MediaWiki上的指引
调试和测试
- 怎样调试——MediaWiki调试入门。
- Errors and symptoms – MediaWiki常见错误及解决办法参考。
- 浏览器测试 – 学习如何使用Selenium为MediaWiki写UI测试用例。
- 单元测试——学习用PHPUnit为MediaWiki开发单元测试用例。
- API集成测试 – 学习使用Mocha为MediaWiki编写API集成测试。
- Security for developers – 了解如何写安全代码。
架构
- MediaWiki架构 – MediaWiki架构介绍。
- 代码结构 – MediaWiki关键源码介绍。
- Manual:数据库布局 – MediaWiki数据库设计。
- 全域对象变量 – 部分全局变量说明。
- 本地化 – MediaWiki本地化系统设计说明。
- 该wiki上的手册名字空间——开发者文档。
- MediaWiki类参考手册——从MediaWiki源码生成的技术文档。 (注意:类参考手册很大,加载会比较慢。)
扩展MediaWiki
MediaWiki已設計為允許修改但无须改动核心代码。这也使得用户可以很方便地升级MediaWiki而无须手动把自己的修改重新加入到舊的擴展功能的代码中。有幾个擴展點可以让开发人员修改或擴展MediaWiki所能做的事。
扩展功能的开发人员的帮助文档
- 开发扩展 – 扩展功能的开发指南。
- Extensions FAQ
- 参见Category:扩展现有扩展功能的列表。
- Extension:BoilerPlate – 一個空的扩展功能的模板。
皮肤的开发人员的帮助文档
- 手册:如何制作MediaWiki皮肤 – MediaWiki皮肤的创建教程。
- 配置皮肤 – wiki的皮肤配置的指南。
Help for gadget developers
- Gadget kitchen – a guide to developing user scripts and gadgets on wiki.
Help for module developers
- Scribunto/Lua参考手册 – documentation for developing Lua modules on wiki.
- Extension:Scribunto – 关于Scribunto扩展。
备注
- ↑ 不是所有MediaWiki代码都由PHP书写。一些支持工具是用其他语言书写的,包括批处理文件、shell脚本、makefiles和Python。
- ↑ MediaWiki可以运行在大多数支持PHP的平台上,然而在非LAMP平台上,由于缺少某些实用工具或操作系统功能,可能会限制MediaWiki的功能或性能。
- ↑ MediaWiki此外支持DBMS,包括PostgreSQL以及SQLite等。
- ↑ 开发者是志愿者和多个组织的带薪职员(或承包商)的组合。有關使用MediaWiki代碼的人員的完整列表,請閱讀开发人员文章。
- ↑ 在Gerrit浏览源代码和代码存储库的修订,或使用Gerrit下载源代码至您的系统。