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 は基本的にLAMP プラットフォーム向け で、ほとんどのOSで有効です. 基本的に MediaWiki ではデータベースサーバに MySQL と MariaDB を使用します.

開発はオープンソース方式 で、大部分をオンライン環境で調整し、メディアウィキ財団の経済的支援を受けています. ただしボランティアのコミュニティに属する開発者の皆さんにも多大な役割を果たしています.


 * 開発についての議論がさまざまなメーリング リストや IRC チャンネルで行われています. 主な開発者リストはwikitech-l. 主な開発者 IRC は#mediawikiと#wikimedia-devです.
 * ソースコードのバージョンは、Gitを使用して管理しています.
 * ほとんどのプロジェクトはコードリビューをで実施しています. パッチ提出の準備としてGitとGerritを設定するには、チュートリアルに従ってください.
 * バグの報告およびほとんどのプロジェクトのタスクはPhabricatorで管理されています.
 * 開発者で（コアのコード書きではなく）MediaWikiの拡張やインターフェイスに取り組む場合は、API、HooksシステムやSkinsなど、いくつか便利な拡張ポイントがあります – 概要はこのページ内の「#MediaWikiを拡張する」節にまとめてあります.

主要な文書


コード、開発、スタイル

 * Development policy – 主要な開発ポリシーの概要
 * コーディング規約 – MediaWiki のスタイルでコードを書く方法を学習しましょう.
 * Security for developers – MediaWiki をセキュアなものに保つ方法を学習しましょう.
 * コミット前のチェックリスト – コードをコミットする前にこのチェックリストをお読みください
 * コード レビュー ガイド – MediaWiki のソースコードへのコミットのレビュアー向けのガイド
 * コメント募集（RfC） – for the MediaWikiエコシステムに導入する新機能を閲読または提案する場所

デバッグとテスト

 * デバッグの方法 – MediaWiki をデバッグするためのガイド
 * Manual:Errors and symptoms – MediaWiki でよくあるエラーとそれが引き起こす症状の概要.
 *  – MediaWiki 用の UI テストを Selenium を使用して記述する方法を学習しましょう.
 * 単体テスト – MediaWiki 用の単体テストを PHPUnit を使用して記述する方法を学習しましょう.
 *  – 安全性の高いコードの書き方はこちらで習得できます.



アーキテクチャ

 * Manual:コード – MediaWiki のソースコードの主要な部分の概要
 * データベース レイアウト – MediaWiki のデータベース スキーマの概要
 * グローバル オブジェクト変数 – 主要なグローバル変数の部分的な一覧
 * 地域化 – MediaWiki の国際化システムについて学習しましょう.
 * このウィキの Manual 名前空間 – 開発者向けの説明文書
 * [//doc.wikimedia.org/mediawiki-core/master/php/ MediaWiki Class Reference] – MediaWiki ソースコードから導いた技術文書（注記: クラスの参照ページは重いため読み込みに時間がかかります. ）
 *  – マニュアル、ガイドなど特選した記事.

下位システム

 * API - MediaWiki の API は、MediaWiki のデータベースに含まれるデータへの直接的で高レベルのアクセス手段を提供します.
 * ContentHandler（コンテンツハンドラー） – 特殊な種類のコンテンツをサポートするMediaWikiのフレームワーク.
 *  – MediaWikiにおけるデータベース利用の概要と、データベース抽象化層の簡単なガイド.
 *  – MediaWikiで長時間実行されるタスクを非同期に処理するフレームワーク.
 *  – PHPまたはJavaScriptでローカライズされたアプリケーションメッセージを提供する、MediaWikiのフレームワーク.

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


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

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

 * 拡張機能の開発 – 拡張機能の開発ガイド.
 * Project:WikiProject Extensions
 * Extensions FAQ - 拡張機能のよくある質問
 * 拡張機能の一覧はカテゴリ:拡張機能を参照.
 * コールバック関数のリスト – MediaWikiコアを構成するまで、暫定的に設定変更する（もしくは異なるコールバック関数を実行する）.
 * ボイラープレート拡張機能 - 拡張機能用の情報が入力されていないテンプレート.

外装開発者向けのヘルプ

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

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

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