目次 †
他のバージョンについては
→ MediaWiki
- -
- その他[?]
関連 †
MediaWiki/1.10 †
検索:MediaWiki
MediaWiki 1.10の解析。
MediaWikiの主要部分を調べた結果。
参考 †
参考 †
Google:MediaWiki
- MediaWiki Documentation
- http://svn.wikimedia.org/doc/
WikiEngine/MediaWiki/1.10 †
主処理への入り口 †
主処理への入り口 †
- index.phpがエントリーポイント。
- initialize直後にCleanup。主処理はどこか?
- なぜかMediaWiki::initializeの中に主処理がある。
index.php > MediaWiki::initialize > MediaWiki::performAction > (URLクエリーの'action'次第で分岐、それぞれの処理へ) - initialize直後にCleanup。
index.php -> MediaWiki::initialize -> MediaWiki::performAction -> (リクエストの'action'次第で分岐、それぞれの処理へ)
MediaWikiひとめぐり †
起動から終了までの主な処理を処理順に。
MediaWikiひとめぐり †
起動から終了までの主な処理を処理順に記す。
MediaWiki::performActionが処理の中心。
ここで何をするかはMediaWikiの外から与えられるクエリー次第。
ここで何をするかはMediaWikiの外から与えられるリクエスト次第。
- index.php
- includes/Wiki.php(41)
MediaWiki::initialize - includes/Wiki.php(365)
MediaWiki::performAction
※クエリー'action'次第でいろいろ処理。またはOutputPage::redirectを呼び出すことでリダイレクトすることにする(実際の出力は後のOutputPage::outputで)。
※クエリー'action'次第でいろいろ処理。またはOutputPage::redirectを呼び出して、あとでリダイレクトすることにする(実際は後のOutputPage::outputで行なう)。 - includes/Wiki.php(289)
MediaWiki::finalCleanup - includes/Wiki.php(305)
MediaWiki::doUpdates
$wgDeferredUpdateListに溜め込んだオブジェクト全て->doUpdates
こうして処理タイミングを遅らせているのは、処理間の依存関係を解決するため? - includes/OutputPage.php(553)
OutputPage::output
※スキン適用、HTTPヘッダー・HTMLヘッダー生成、レスポンス出力
action †
'action'はほとんどMediaWiki(includes/Wiki.php)とArticle(includes/Article.php)で処理される。
action †
actionはほとんどMediaWiki(includes/Wiki.php)とArticle(includes/Article.php)で処理される。
それ以外には3つ程度のクラスしか関与しない。
処理の中心になっているのはこれらの数少ないクラスらしい。
'view'というactionは複数のクラスを通して処理される。
'view'はactionのデフォルト値。
MediaWikiが処理する'action' †
- view *
MediaWiki[?]が処理する'action' †
- dublincore
- creativecommons
- credits
Articleが処理する'action' †
Article[?]が処理する'action' †
- view *
- watch
- unwatch
- delete
- revert
- rollback
- protect
- unprotect
- info
- markpatrolled
- render
- deletetrackback
- purge
その他 †
その他の'action'一覧 †
- submit *(editを含む)
- edit *
- history *
- raw ?
action 'view' †
'view'
actionのデフォルト。
Articleが処理する。
クエリーで指示されたページを表示する。
関連するクエリー †
- diff
差分表示するか否か。差分表示は独立したactionではなく、action 'view'の一部になっている。 - rcid
RecentChange(最近更新されたページ)?
巡回にのみ関連。 - rdfrom
外部からのリダイレクトに関連。 - diffonly(利用者の設定と関連)
- oldid
履歴(特定版)ID - direction
履歴と関連。値は'next'または'prev'のどちらかになる。
表示する履歴に関連。
やってること †
処理を順に列記する。
- -
スキン参照。
プロセス名変更。
名前空間取得。
クエリーからOldIDを得て、不正なものならリダイレクト。
OldID…履歴のID、Wikipediaでの「特定版」?
ArticleFlagをtrueに。
検索エンジンのロボット向けヘッダーの用意。
'diff'やOldIDを与えられたら差分ページを用意。
差分はDifferenceEngine[?]に任せる。
でも最新版を表示することもある。
$this->mIsRedirect でなく、OldIDも与えられていなければ…$this->viewUpdates()
HTTPヘッダーにETagも設定。
wfDebug( 'Article::view using parser cache: ' . ($pcache ? 'yes' : 'no' ) . "\n" );
if ( $wgUser->getOption( 'stubthreshold' ) ) {
wfIncrStats( 'pcache_miss_stub' );
}
リダイレクトページの処理。「~より転送」
リダイレクトページではなくrdfromがあれば…
外部からのリダイレクト。
要ログインなページの処理。
履歴。
- -
ページに追加。
<pre>…</pre>追加。
<span class="redirectText">…</span>追加。
MediaWikiでのページキャッシュ。
履歴ではページキャッシュを無効に。
ページタイトル取得。
名無しさん用会話ページの場合に追加される処理。
巡回機能のためのUI追加。
<div class='patrollink'>…</div>追加。
トラックバック表示の追加。
- -
ページ出力。
action 'edit' †
EditPage[?]またはExternalEdit[?]が処理する。
イベント'CustomEditor'実行。正しく実行できたことが前提条件。
ExternalEditは「編集に外部アプリケーションを使う」[?]のレスポンスを返す(.ini形式で編集するページ名などを返す)だけ。
この仕組みはMediaWikiの範疇ではなく、ee.plによって実現されている。
MediaWiki/1.10/ †
- :CodeReading/MediaWiki/1.10/class
- :CodeReading/MediaWiki/1.10/class/Article
- :CodeReading/MediaWiki/1.10/class/EditPage
- :CodeReading/MediaWiki/1.10/class/Hooks.php
- :CodeReading/MediaWiki/1.10/class/MediaWiki
- :CodeReading/MediaWiki/1.10/extends
- :CodeReading/MediaWiki/1.10/function
- :CodeReading/MediaWiki/1.10/require
- :CodeReading/MediaWiki/1.10/編集に外部アプリケーションを使う