Developer hub/zh



MediaWiki开发说明，包括关键文件，资源和开发工具. 它是为 使用过MediaWiki的熟练LAMP（软件包） 程序员写的.

作为一个MediaWiki的入门开发指引，请阅读如何成为一个 MediaWiki hacker.

MediaWiki安装和自定义帮助文档，请参考. MediaWiki使用帮助，参考.

概要
MediaWiki是以开源形式开发的. 使用 PHP 编程语言 MediaWiki主要在LAMP平台运行. 核心开发是通过大规模在线协作完成的.


 * 开发讨论可以在各种邮件列表和IRC 频道中. 主要开发者列表为wikitech-l，主要的开发者 IRC 频道为#mediawiki和#wikimedia-dev.  请阅读Developers中的内容以对邮件列表和 IRC 频道中的人有个印象.


 * 源代码 使用 Git 版本管理系统管理. 参考Git入门了解MediaWiki程序员Git使用说明.  如果您想要访问源码，参考 wikitech:Help:Access.


 * 代码审查 使用系统, 您也可以贡献补丁修复问题，参考 Gerrit入门 了解 git 和 gerrit 如何具体操作.


 * MediaWiki 中的开发者扩展或接口（而不修改核心代码）有几种便捷的扩展方式，包括 API、钩子系统和皮肤——请参阅本页的Extending MediaWiki 段落了解概要.

主要文档


编码、开发和规范

 * Development policy – 主要开发策略简介.


 * 代码规范 – 学习MediaWiki中PHP代码规范.


 * Security for developers – 了解如何保持MediaWiki系统安全.


 * 代码提交核查表 – 在提交代码前，请仔细根据核查表检查相关事项.


 * 代码审查手册 – MediaWiki代码审查手册，供审查人员使用.


 * 需求中心(RfC) – 了解MediaWiki需求表，也可以提出自己对MediaWiki的需求建议.

调试和测试

 * Bug列表 – MediaWiki bug管理系统简介.


 * 怎样调试 – MediaWiki调试入门.


 * 常见错误 – MediaWiki常见错误及解决办法参考.


 * Selenium Framework – 学习如何使用Selenium为MediaWiki写UI测试用例.


 * 单元测试 – 学习用PHPUnit为MediaWiki开发单元测试用例.


 *  — 请将安全问题报告至 [mailto:security@wikimedia.org security@wikimedia.org].



系统架构

 * Manual:Code – MediaWiki关键源码介绍.


 * 数据库设计 – MediaWiki数据库设计.


 * 全局变量 – 部分全局变量说明.


 * 本地化 – MediaWiki本地化系统设计说明.


 * Manual 手册集 – 开发者文档.


 * [//doc.wikimedia.org/mediawiki-core/master/php/html/ MediaWiki类参考手册] –从MediaWiki源码生成的技术文档. （注意： 手册很大，加载会比较慢. ）


 * MediaWiki 虚拟库——手册、教程及所选文章的集合.

子系统

 * API – MediaWiki's API provides direct, high-level access to the data contained in the MediaWiki databases


 * ContentHandler——MediaWiki 的自定义页面类型支持框架.


 * 数据库访问——MediaWiki 中数据库使用综述，包括数据库抽象层简明指南.


 * Job queue——MediaWiki 中让长时间任务异步运行的框架.


 * 消息 API——MediaWiki 中通过 PHP 或 JavaScript 提供本地化程序消息的框架.

扩展 MediaWiki
MediaWiki 中有六个地方可以让开发人员添加新功能或者修改现有的功能. 可以扩展现有的功能而无须改动核心代码，是 MediaWiki 的设计原则之一. 这也使得用户可以很方便地升级 MediaWiki 也无须每次都手动把自己的修改重新加入到新版本的代码中. 而这些扩展点分别是：


 * API——通过强大的 web API 访问 MediaWiki 实例数据和元数据.


 * Hooks – 系统的执行挂钩


 * Parser Functions – 添加自定义的指令，例如


 * Skins – 自定义 MediaWiki 的外观


 * Special Pages – 添加自定义的特殊页面


 * Tag Extensions – 添加自定义的标签，例如

插件开发人员的帮助文档

 * Manual:Developing extensions——扩展开发指南.
 * Project:WikiProject Extensions
 * Extensions FAQ
 * See Category:Extensions——扩展列表
 * Manual:$wgExtensionFunctions——用于在安装好 MediaWiki 核心之前延迟扩展安装（或执行其他回滚）.
 * Extension:BoilerPlate——空的扩展模板

皮肤开发人员的帮助文档

 * Manual:Skinning——MediaWiki 皮肤创建教程.
 * Manual:Skin configuration——在维基中皮肤配置指南.

Help for library code reuse

 * Manual:Developing libraries – a guide to packaging third-party libraries for use with MediaWiki

使用第三方维基站点

 * Enterprise hub —— 企业式维基
 * —— 大学式维基