Developer hub/ja

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


 * ウィキメディアの web API を使用したい場合は、Web API ハブ (作業中) を参照してください.
 * ウィキメディアのソフトウェア開発に貢献したい場合は、New Developersを参照してください.
 * MediaWikiおよびその拡張機能の開発の入門ガイドについては、MediaWiki のハッカーになるにはを参照してください.
 * もし外部のMediaWikiユーザと協同したい場合には、MediaWiki開発者やシステム管理者、ユーザ、コンサルタントのほかホスティングのプロバイダが集まるMediaWiki 利用者グループは、MediaWiki Stakeholders' Group（MWStake：MediaWiki利害関係者グループ）です.

概要
MediaWiki は、ウィキペディアとその姉妹プロジェクト群や世界中の数多くのウィキを支えるソフトウェアです.

MediaWikiはPHPプログラミング言語. jQueryをクライアントJavaScriptライブラリに使っています.

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

Development happens in an open source style, 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を設定するには、チュートリアルに従ってください.
 * バグの報告およびほとんどのプロジェクトのタスクはPhabricatorで管理されています.
 * 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.

デバッグとテスト

 * デバッグの方法 – MediaWiki をデバッグするためのガイド
 * Manual:Errors and symptoms – an overview of common MediaWiki errors and their correlating symptoms.
 *  – MediaWiki 用の UI テストを Selenium を使用して記述する方法を学習しましょう.
 * 単体テスト – MediaWiki 用の単体テストを PHPUnit を使用して記述する方法を学習しましょう.
 *  – 安全性の高いコードの書き方はこちらで習得できます.



アーキテクチャ

 * 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.)
 *  – 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 - Web API を使用して、MediaWiki インスタンスのデータやメタデータにアクセス
 * フック – イベントが発生するたびに何かをします.
 * パーサー関数 – 新しいコマンドを作成します. 例:
 * 外装 (スキン) – MediaWiki の外観を変更します.
 * 特別ページ – 新しい特別ページを追加します.
 * タグ拡張機能 – 新しいタグを作成します. 例:
 * Extending wiki markup – add a parser hook to modify the content of wikitext.

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

 * 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.

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

 * – a guide to packaging third-party libraries for use with MediaWiki.

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

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