- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- :i/フック へ行く。
- 1 (2015-02-26 (木) 08:17:10)
- 2 (2015-07-15 (水) 01:55:11)
- 3 (2016-08-21 (日) 22:16:05)
MediaWikiのフックは本体を拡張する仕組み。でも目的に合うフックを探さないといけない。
本体を拡張するなら、ビルトインな機能もプラグインとして実装。プラグインの入れ替えで本体に手を加えられるようにする。パッチを当てるのもプラグインごとに。
特定のpublicメソッド(この仕組みに対応しているメソッド。API)の実行前後に、プラグイン内で定義されている"pre"、"post"付きメソッドを実行。(preで呼ばれたプラグインとは逆の順序でpostを持つプラグインを呼び出し)
- RenderDocument_Pre (プラグインAの)
- RenderDocument_Pre (プラグインBの)
- RenderDocument (本体の)
- RenderDocument_Post (プラグインBの)
- RenderDocument_Post (プラグインAの)
どのメソッドも同じインターフェイスで宣言。
これでも目的に合うAPIを探さないといけない。実行順序をドキュメントにしておくか、どんなユースケースであっても呼び出されたAPIをログやビュー上に出力できるように。それを読んでAPI探し。出力には引数名も載せて何をしているか分かりやすく。PerlのSmart::Commentsのようなことができれば理想的。
つまり、どのpublicメソッドもフックをかけられるようにするということ。