Feeds:
文章
留言

Archive for 六月 12th, 2009

MediaWiki 實作實作兩個 Dispatcher :MediaWiki 和 AjaxDispatcher 。兩個類別最重要的 Method 都是 performAction(),也就是實際動作分派,MediaWiki 透過 $action 字串變數來進行任務分派,而且是透過簡單的條件式分派並沒有實作 Command Pattern。

AjaxDispatcher 則是透過 PHP 的 call_user_func_array 進行任務分派。這部份的機制很容易理解就不多加著墨。

不過從之前的頁面呈現和現在 Dispatcher 機制看來,MediaWiki 的架構也是採用 MVC 的架構,我簡化成如下圖:

mw06

使用者的 Request 統一透過 MediaWiki 處理,透過 Article 取得條目資訊,在透過 Skin 套用樣板,最後呈現頁面給 User。

Read Full Post »