Developer hub/zh

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


 * 如果您想使用维基媒体web API，请访问Web API中心（正在制作）.
 * 如果您希望贡献开发维基媒体软件，请参阅新开发者.
 * 要查找开发MediaWiki及其扩展的入门指导，请阅读如何成为MediaWiki的hacker.
 * If you want to collaborate with other third-party MediaWiki users, the MediaWiki Stakeholders' Group (MWStake) is a MediaWiki user group consisting of MediaWiki developers, system administrators, users, consultants, and hosting providers.

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

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

MediaWiki主要为LAMP平台开发 ，并可以在大多数操作系统上运行. MediaWiki主要使用MySQL和MariaDB数据库服务器.

开发以开源形式进行 、高度在线协调、并受维基媒体基金会支持，当然志愿社群开发者同样也做出了伟大贡献.


 * 开发讨论可以在各种邮件列表和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 段落了解概要.

主要文档


编码、开发和规范

 * 开发方针——主要开发策略简介.
 * 代码规范——学习MediaWiki中代码规范.
 * 开发者安全——了解如何保持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上的指引.

使用第三方维基站点

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