Developer hub/zh

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


 * 如果您想使用维基媒体web API，请访问Web API中心（正在制作）.
 * 如果您希望贡献开发维基媒体软件，请参阅新开发者.
 * 作为一个MediaWiki的入门开发指引，请阅读如何成为一个 MediaWiki hacker.

概要
MediaWiki is the software that powers Wikipedia, its sister projects and thousands of wikis all over the world.

MediaWiki is written in the PHP programming language. It uses jQuery as the client JavaScript library.

MediaWiki is primarily written for the LAMP platform and runs on most operating systems. MediaWiki primarily uses the MySQL and MariaDB database servers.

MediaWiki是以开源形式开发的 使用PHP编程语言 MediaWiki主要在LAMP平台运行. . For a full list of who works on the MediaWiki code, read the article. , is largely coordinated online, and supported by the Wikimedia Foundation, though volunteer community developers play a huge part as well.


 * 开发讨论可以在各种邮件列表和IRC 频道中. 主要开发者列表为wikitech-l，主要的开发者 IRC 频道为#mediawiki和#wikimedia-dev.
 * 源代码 使用 Git 版本管理系统管理.
 * 代码审查使用系统. 参考这个入门以配置Git和Gerrit来提交补丁.
 * Bug reports and tasks for most projects are managed on Phabricator.
 * MediaWiki中的开发者扩展或接口（而不修改核心代码）有几种便捷的扩展方式，包括 API、钩子系统和皮肤——请参阅本页的Extending MediaWiki 段落了解概要.

主要文档


编码、开发和规范

 * Development policy——主要开发策略简介.
 * 代码规范——学习MediaWiki中代码规范.
 * Security for developers——了解如何保持MediaWiki系统安全.
 * 代码提交核查表——在提交代码前，请仔细根据核查表检查相关事项.
 * 代码审查手册——MediaWiki代码审查手册，供审查人员使用.
 * 需求中心(RfC)——了解MediaWiki需求表，也可以提出自己对MediaWiki的需求建议

调试和测试

 * 怎样调试——MediaWiki调试入门.
 * 常见错误——MediaWiki常见错误及解决办法参考.
 *  – 学习如何使用Selenium为MediaWiki写UI测试用例.
 * 单元测试——学习用PHPUnit为MediaWiki开发单元测试用例.
 * ——了解如何写安全代码.



系统架构

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

子系统

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

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


 * API——通过其web API，访问MediaWiki实例的数据和元数据
 * 钩子——系统的执行挂钩.
 * 解析其函数——添加自定义的指令，例如：
 * 皮肤——自定义 MediaWiki 的外观.
 * 特殊页面——添加自定义的特殊页面.
 * 标签扩展——添加自定义的标签，例如：
 * Extending wiki markup – add a parser hook to modify the content of wikitext.

插件开发人员的帮助文档

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

皮肤开发人员的帮助文档

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

库代码复用的帮助

 * – 打包第三方库以用于MediaWiki上的指引

使用第三方维基站点

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