Developer hub/ja



このページでは、MediaWiki 開発の高レベルな概要を記述しており、MediaWiki 開発者が利用できるような、重要な文書、リソース、ツールへのリンクを含んでいます. '''MediaWiki を使用した経験があるような、熟練した LAMP 開発者向けに書かれています. '''


 * ウィキメディアの web API を使用したい場合は、Web API ハブ (作業中) を参照してください.
 * MediaWiki の開発の入門的なガイドについては、MediaWiki のハッカーになるにはを参照してください.
 * MediaWiki のインストールやカスタマイズについては、 を参照してください.
 * MediaWiki の使用についてのヘルプは、 を参照してください.

概要
MediaWiki is developed in an open source style using the PHP programming language primarily for the LAMP platform. Core development is largely coordinated online.


 * 開発についての議論がさまざまなメーリング リストや IRC チャンネルで行われています. 主な開発者リストはwikitech-l. 主な開発者 IRC は#mediawikiと#wikimedia-devです.  Read the Developers article to get a sense for who the people on the mailing lists and IRC channels are.
 * ソースコードは、Git を使用して保守されています. MediaWiki 開発者が Git をどのように使用するかの概要は、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 of 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 – 主要な開発ポリシーの概要
 * コーディング規約 – MediaWiki のスタイルでコードを書く方法を学習しましょう.
 * Security for developers – MediaWiki をセキュアなものに保つ方法を学習しましょう.
 * コミット前のチェックリスト – コードをコミットする前にこのチェックリストをお読みください
 * コード レビュー ガイド – MediaWiki のソースコードへのコミットのレビュアー向けのガイド
 * Requests for Comment (RfC) – read about or suggest new features for the MediaWiki ecosystem

デバッグとテスト

 * Bugs – an overview of bug tracking in the MediaWiki project.
 * デバッグの方法 – MediaWiki をデバッグするためのガイド
 * Manual:Errors and symptoms – an overview of common MediaWiki errors and their correlating symptoms.
 *  – MediaWiki 用の UI テストを Selenium を使用して記述する方法を学習しましょう.
 * 単体テスト – MediaWiki 用の単体テストを PHPUnit を使用して記述する方法を学習しましょう.
 *  – セキュリティ上の問題点は [mailto:security@wikimedia.org security@wikimedia.org] に報告されます.



アーキテクチャ

 * Manual:コード – MediaWiki のソースコードの主要な部分の概要
 * データベース レイアウト – MediaWiki のデータベース スキーマの概要
 * グローバル オブジェクト変数 – 主要なグローバル変数の部分的な一覧
 * 地域化 – MediaWiki の国際化システムについて学習しましょう.
 * このウィキの Manual 名前空間 – 開発者向けの説明文書
 * [//doc.wikimedia.org/mediawiki-core/master/php/ MediaWiki Class Reference] – technical documentation generated from the MediaWiki source code. (Note: The class reference is a large, slow-to-load page.)
 * MediaWiki Virtual Library – manuals, guides, collections of selected articles.

下位システム

 * API - MediaWiki の API は、Mediawiki のデータベースに含まれるデータへの直接的で高レベルのアクセス手段を提供します
 * ContentHandler – MediaWiki's framework for supporting custom types of page content.
 *  – an overview of using databases in MediaWiki, including a brief guide to the database abstraction layer.
 *  – MediaWiki's framework for processing long-running tasks asynchronously.
 *  – MediaWiki's framework for providing localized application messages with PHP or JavaScript.

MediaWikiを拡張する
MediaWiki は「コアコード」を変更することなく修正できるように設計されています. これにより、古い拡張機能のコードの変更に手作業でマージすることなく新しい MediaWiki のバージョンを更新することが簡単になります. MediaWiki ができることを開発者が変更・拡張できるようにするための、拡張機能の主要なポイントが 6 つあります. 拡張機能のポイントは以下の通りです:


 * API - 強力な"Action" Web API を使用して、MediaWiki インスタンスのデータやメタデータにアクセス
 * フック – イベントが発生するたびに何かをします.
 * パーサー関数 – 新しいコマンドを作成します. 例:
 * 外装 (スキン) – MediaWiki の外観を変更します.
 * 特別ページ – 新しい特別ページを追加します.
 * タグ拡張機能 – 新しいタグを作成します. 例:

拡張機能開発者向けのヘルプ

 * Manual:Developing extensions – a guide to developing extensions.
 * Project:WikiProject Extensions
 * Extensions FAQ
 * See Category:Extensions, for a list of extensions.
 * Manual:$wgExtensionFunctions – use to defer setup (or run other callbacks) for extensions until after the MediaWiki core is setup.
 * Extension:BoilerPlate - a blank extension template

外装開発者向けのヘルプ

 * Manual:Skinning Part 1 – instructions on how to create a skin for MediaWiki.
 * Manual:Skin configuration – a guide to configuring skins for a wiki.

ライブラリのコードの再利用についてのヘルプ

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

サードパーティウィキの使用

 * - エンタープライズ ウィキ向け
 * - 学術的なウィキ向け