Developer hub/zh



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

For an introductory guide to developing MediaWiki, read how to become a MediaWiki hacker.

For help installing or customizing MediaWiki, visit the. For help using MediaWiki, visit the.

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


 * Development discussion happens on various mailing lists and IRC channels. The main developer list is wikitech-l. The main developer IRC channels are #mediawiki and #wikimedia-dev. Read the Developers article to get a sense for who the people on the mailing lists and IRC channels are.


 * Source code is managed using the Git revision control system. Read the Git article for an overview of how the MediaWiki developers use Git. Read the wikitech:Help:Access article if you'd like access.


 * Code review is performed on, see this tutorial to get set up with git and gerrit in order to submit patches.


 * Developers extending or interfacing with MediaWiki (instead working on the core code) have several convenient extension points, including the API, the Hooks system and Skins – see the #Extending MediaWiki section of this page for an overview.

主要文档


编码、开发和规范

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


 * Coding conventions – learn how to write PHP code in the MediaWiki style.


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


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


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


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

调试和测试

 * Bugs – an overview of bug tracking in the MediaWiki project.


 * How to debug – a guide to debugging MediaWiki.


 * Manual:Errors and symptoms – an overview of common MediaWiki errors and their correlating symptoms.


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


 * Unit testing – learn to write unit tests for MediaWiki using PHPUnit.


 *  – security issues are reported to [mailto:security@wikimedia.org security@wikimedia.org].



系统架构

 * Manual:Code – an overview of the key parts of MediaWiki's source code.


 * Database layout – an overview of MediaWiki's database schemas.


 * Global object variables – a partial list of key global variables.


 * Localisation – learn about MediaWiki's internationalisation system.


 * Manual namespace on this wiki – documentation for developers.


 * 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 has been designed to allow for modification without changing the "core code". This makes it easy to update to a new version of MediaWiki without having to manually merge in old extension code changes. There are six main extension points that allow developers to change or extend what MediaWiki can do. The extension points are:


 * API – access the data and metadata of MediaWiki instances through a powerful web API


 * 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 —— 企业式维基
 * —— 大学式维基