Jump to content

開発者ハブ

From mediawiki.org
This page is a translated version of the page Developer hub and the translation is 100% complete.
  • 利用者
  • システム管理者
  • 開発者
  • 翻訳者


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

  • ウィキメディアの web API を使用したい場合は、開発者ポータルを参照してください。
  • ウィキメディアのソフトウェア開発に貢献したい場合は、新規開発者 を参照してください。
  • MediaWiki およびその拡張機能の開発の入門ガイドについては、MediaWikiハッカーになる方法 を参照してください。
  • もし外部のMediaWiki利用者と協同したい場合には、MediaWiki開発者やシステム管理者、利用者、コンサルタントのほかホスティングのプロバイダが集まるMediaWiki 利用者グループは、MediaWiki 利害関係者グループ (MWStake:MediaWiki利害関係者グループ) です。

概要

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

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

MediaWiki は基本的にLAMP プラットフォーム向け[2]で、ほとんどのOSで有効です。 基本的に MediaWiki ではデータベース サーバーに MySQL と MariaDB を使用します[3]

開発はオープンソース方式で行われます[4]。大部分はオンラインでの調整となっており、ウィキメディア財団はサポートしていますが、ボランティアのコミュニティ開発者も大きな役割を果たしています。

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

主要な文書

コード、開発、スタイル

デバッグとテスト

アーキテクチャ

下位システム

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

MediaWikiを拡張する

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

  • API - Web API を使用して、MediaWiki インスタンスのデータやメタデータにアクセス。
  • フック – 指定されたイベントが発生するたびに何かをします。
  • パーサー関数 – 新しいコマンドを作成します。例: {{#if:...|...|...}}
  • 外装 – MediaWiki の外観を変更します。
  • 特別ページ – 新しい特別ページを追加します。
  • タグ拡張機能 – 新しいタグを作成します。例: ‎<newtag>...‎</newtag>
  • ウィキ マークアップの拡張 – ウィキテキストの内容を変更するパーサーフックを追加します。

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

外装開発者向けのヘルプ

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

脚注

  1. MediaWiki 全体が PHP で書かれているわけではありません。サポート用ツールのなかには別の言語で書かれたものがあり、バッチ ファイルシェル スクリプトのほか MakefilePython が使用されています。
  2. MediaWiki はPHPをサポートするプラットフォームであれば走りますが、LAMP以外のプラットフォームだと、ユーティリティやOS拡張機能が不足していると機能やパフォーマンスが制限されます。
  3. MySQLMariaDB 以外にも、MediaWiki がサポートするデータベースにはPostgreSQLSQLite があります。
  4. 開発者はボランティアと様々な組織の有給スタッフです。MediaWikiで働いている人の完全なリストは開発者 を参照して下さい。
  5. ソース コードやコード リポジトリのリビジョンを Gerrit で参照するか、Gerrit を使用してソース コードのダウンロードができます。