開発者ハブ

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Developer hub and the translation is 97% complete.

Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Tiếng Việt • ‎Türkçe • ‎català • ‎dansk • ‎español • ‎français • ‎galego • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎suomi • ‎čeština • ‎Ελληνικά • ‎български • ‎русский • ‎тоҷикӣ • ‎עברית • ‎العربية • ‎سنڌي • ‎فارسی • ‎মেইতেই লোন্ • ‎සිංහල • ‎ไทย • ‎中文 • ‎日本語 • ‎粵語 • ‎한국어
Crystal Clear app display.png 利用者User hub Nuvola-inspired-terminal.svg システム管理者Sysadmin hub Source code project 1171.svg 開発者Developer hub

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

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

概要

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

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

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

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

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

主要な文書

コード、開発、スタイル


デバッグとテスト


アーキテクチャ

下位システム

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

MediaWikiを拡張する

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

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

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

外装開発者向けのヘルプ

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


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

脚注

  1. MediaWiki全体がPHPで書かれているわけではありません。サポート用ツールのなかには別の言語で書かれたものがあり、バッチファイルシェルスクリプトのほかmakefilesPythonが使われています。
  2. MediaWiki はPHPをサポートするプラットフォームであれば走りますが、LAMP以外のプラットフォームだと、ユーティリティやOS拡張機能が不足していると機能やパフォーマンスが制限されます。
  3. MySQLMariaDB以外にも、MediaWikiがサポートするデータベースOraclePostgreSQLSQLiteMicrosoft SQL Serverなどがあります。
  4. 開発者には無償のボランティアの他にさまざまな組織の有給職員(外注社員)がいます。 DevelopersDevelopers記事では、MediaWiki コードの開発者の詳細な一覧について述べています。
  5. ソースコードやコードリポジトリのリビジョンを見るにはhttps://phabricator.wikimedia.org/diffusion/を読むか、Gerritを使ってソースコードのダウンロードができます。