Manual:Code/ja

このページは主要なMediaWikiのコードの主要なソースファイル(クラス)/オブジェクトを解説します.

index.php
(メインディレクトリ)

メインスクリプトです. 何をするのか決定するために必要なグローバルオブジェクトを作成しURLを解析します. 一般的には他のファイルにあるスクリプトにoffを渡します(取得するアクションによります).

インクルージョンをWebStart.phpに適用します. 入れ替わりでインクルージョンをLocalSettings.phpに適用します.

次にWiki.phpのインクルージョンを通してMediaWikiのクラスを定義しクラスのインスタンスである、$mediaWikiオブジェクトを作成します.

Wiki.phpでcheckInitialQueries関数を呼び出し、URLからタイトルとアクションを抽出するためにTitle.phpでnewFromURL関数(下記を参照)を呼び出します

多くの関数は内容を$wgOutオブジェクトに送ることで仕事をします. Wiki.phpの(下記を参照)initialize関数($outputが使用される場所)によって作成され、finalCleanup関数で一掃されます. ページ表示の後までデータベースへの変更を延期する必要がある場合、それらは最後に行われます.

それらのインクルードの順番は扱いが難しいことに注意して下さい: 言語はいくちかのグローバル関数を使用します. グローバス変数の作成も同様です. 幾分かの深慮無しにそれらをあちらこちらに移動させないで下さい.

Wiki.php
("includes"ディレクトリ)

このファイルはMediaWikiのクラスの定義で構成されています. 他のことの中でこのクラスは以下のことを含みます:
 * performAction関数 HTMLの作成を含む、大抵のアクションを実行します. 例えば、ページ閲覧の場合、Article.phpで"view"機能が呼びされます.
 * finalCleanup関数 (index.phpによって呼び出されます)Output.phpで出力機能を呼び出し、すべてのHTMLを一掃します.

Setup.php
このファイルは以下の内容を含みます:

Stubobject.phpでStubObject関数を使用するもしくは使用しないに関わらず、これはOutputPage.phpでOutputpageクラス$wgOutインスタンスを作成します.

User.php
("includes"ディレクトリ)

ユーザのサイト閲覧/使用をカプセル化します. ユーザの設定、名前などのためにクエリされます. データベースのuser tableの取得と保存の詳細およびセッションとクッキーを取り扱います.

OutputPage.php
("includes"ディレクトリ)

このファイルはaddPrimaryWikiText関数を含みます:


 * parse関数をParser.phpをwikiテキストの$textに適応し、HTMLテキストを$textに結果を返します.
 * addParserOutput関数をHTMLテキスト $textに適応します:
 * addHTML関数を$textに適応します、$textを$mBodytextに追加します.

以下の内容を含みます:
 * function output Wiki.phpにあるfinalCleanup関数から呼びされます. Skin.phpでoutputPage関数を呼び出します.
 * function out Skin.phpにあるoutputPage関数から呼び出されます. HTMLをユーザに送ります: それの前後で$mBodytextとHTMLです.

Parser.php
("includes"ディレクトリ)

このファイルは文字列$textをwikiテキストからHTMLに変換するために使用されるパーサオブジェクトを定義します. いくつかの段階で解析を実行するparse関数を含みます:
 * 1) nowiki、pre、mathとhieroをストリップしてレンダーするfunction関数を呼び出します. この関数はParserBeforeStripフックに先先行されParserAfterStripフックに追跡されます.
 * 2) これはinternalParse関数を呼び出します. 文字列$textをwikiテキストからHTMLに変換します. これは変数とテンプレートを拡張し、wikiマークアップをヘッダーコードと二重引用符と三重引用符の記号をHTMLの同等なものに置き換え、二重括弧句をA HREFリンクへの内部wikiページに変換し、単独の括弧のURLを外部ページへのA HREFリンクに変換します.
 * 3) これはHTMLクリーンナップをするtidy関数を呼び出します. この関数はParserBeforeTidyフックによって先行されParserAfterTidyフックによって追跡されます.

Title.php
on SVN ("includes"ディレクトリ) 記事のタイトルを表し、平文、URL、データベースキーなどの様々な形に翻訳するすべての仕事を行います. 利便のためと、歴史的な理由から、アクセス権限といった、テキストに関係ない記事の機能もいくつか表します.

Article.php
("includes"ディレクトリ)

Parser.phpにあるParserクラスのインスタンスであるwgParseでparse関数を呼び出します.

データベースのrevision tableなどへのアクセスをカプセル化します. オブジェクトは記事を表し、テキスト(wikiテキストフォーマット)、フラグなどの状態を維持します.

Skin.php
("includes"ディレクトリ)

wikiのための"ルックアンドフィール"をカプセル化します. HTMLをレンダーしてどのようにそれをレンダーするのかを選択するすべての関数はここに存在していて、必要な時に様々な場所から呼び出されます.

OutputPage.phpでoutput関数から呼び出されるoutputPage関数を含みます. outputPage関数はHTMLをユーザに送るためにOutputPage.phpにあるout関数、回数を呼び出します:$mBodytextとHTMLの前とそれの後です.

StandardSkinオブジェクトは完全な実装で、いくつかの機能をオーバーライドすることもある他のスキンでサブクラス化します. Userオブジェクトはスキンへの参照(ユーザのプリファレンスに従います)を含み、グローバルなskinオブジェクトを持つよりも、グローバルなUserに依存し、$wgUser->getSkinでスキンを取得します.

Language.php
("languages"ディレクトリ)

二次的なテキストのために使用される言語で文字エンコーディング機能とローカルな事柄を持ちます. グローバルなものは$wgLangに割り当てられます.

国際化もご覧下さい.

LinkCache.php
("includes"ディレクトリ)

記事の存在に関する情報を保持します. LINKCACHE.TXTをご覧下さい.

API
apiコードは外部のアクセスポイント/api.phpを持ちますが、他のコードによって内部的にも使用することが出来ます. 詳細な説明についてはapiページをご覧下さい.

関連項目

 * How to become a MediaWiki hacker/ja
 * Manual:Coding conventions/ja