Developer hub/zh



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


 * 如果您想使用维基媒体web API，请访问Web API中心（正在制作）.
 * 作为一个MediaWiki的入门开发指引，请阅读如何成为一个 MediaWiki hacker.
 * MediaWiki安装和自定义帮助文档，请参考. MediaWiki使用帮助，参考$User.
 * 有关使用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中代码规范.
 * Security for developers – 了解如何保持MediaWiki系统安全.
 * 代码提交核查表 – 在提交代码前，请仔细根据核查表检查相关事项.
 * 代码审查手册 – MediaWiki代码审查手册，供审查人员使用.
 * 需求中心(RfC) – 了解MediaWiki需求表，也可以提出自己对MediaWiki的需求建议.

调试和测试

 * Bug列表 – MediaWiki bug管理系统简介.
 * 怎样调试——MediaWiki调试入门.
 * 常见错误——MediaWiki常见错误及解决办法参考.
 *  – 学习如何使用Selenium为MediaWiki写UI测试用例.
 * 单元测试——学习用PHPUnit为MediaWiki开发单元测试用例.
 * ——请将安全问题报告至 [mailto:security@wikimedia.org security@wikimedia.org].



系统架构

 * Manual:Code——MediaWiki关键源码介绍.
 * 数据库设计——MediaWiki数据库设计.
 * 全局变量——部分全局变量说明.
 * 本地化——MediaWiki本地化系统设计说明.
 * 该wiki上的手册名字空间——开发者文档.
 * [//doc.wikimedia.org/mediawiki-core/master/php/ MediaWiki类参考手册] –从MediaWiki源码生成的技术文档. （注意： 手册很大，加载会比较慢. ）
 * MediaWiki 虚拟库——手册、教程及所选文章的集合.

子系统

 * API——MediaWiki的API提供了直接、高级别的对包含在MediaWiki数据库中的数据的访问
 * 内容处理器——MediaWiki 的自定义页面类型支持框架.
 * 数据库访问——MediaWiki 中数据库使用综述，包括数据库抽象层简明指南.
 * 工作队列——MediaWiki 中让长时间任务异步运行的框架.
 * 消息 API——MediaWiki 中通过 PHP 或 JavaScript 提供本地化程序消息的框架.

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


 * API——通过强大的“行动”web API，访问MediaWiki实例的数据和元数据
 * 钩子——系统的执行挂钩.
 * 解析其函数——添加自定义的指令，例如：
 * 皮肤——自定义 MediaWiki 的外观.
 * 特殊页面——添加自定义的特殊页面.
 * 标签扩展——添加自定义的标签，例如：

插件开发人员的帮助文档

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

皮肤开发人员的帮助文档

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

库代码复用的帮助

 * Manual:Developing libraries——打包第三方库以用于MediaWiki上的指引

使用第三方维基站点

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