PukiWiki Adv 2.0資料

PukiWiki Adv.はコア部分をオブジェクト指向でフルに書き換えています。設計思想として、データーの読み書きを基準に処理を実装しています。例えば、データーを書き込む処理がまずあって、その直前にアンチスパムなどを実装するといった感じです。これにより、ソースの見通しがよくなりました。

一応、デザインパターンは、MVCになっていますが、処理の多くがコントローラーになっています。(モデル部分はファイルの入出力、ビューの部分はスキン出力ぐらいしかありません)

2.0のもう一つの重大な特徴として、Zend Cacheを用いたキャッシュ機能の強化があります。ファイルの一覧などの情報は、ファイルが更新されるたびに行われます。これによりページの一覧の表示が早くなります。ディレクトリの更新を検知してこれらのキャッシュを更新しているため、ページの書き込み処理とは独立して更新ページの一覧を生成しています。これにより、即座に反映されます。自動リンクや、オートグロッサリは、正規表現キャッシュの他に、ページ名(用語名)とリンク先(説明)の両方をキャッシュさせることにより、処理速度を向上させました。

ページの出力は、一旦バッファにデーターをためてから出力する形式に変えました。ページが表示されるまでの時間はかかるようにはなりましたが、xreaのような広告が自動挿入されるタイプのサーバーで、真っ白になってしまう問題を解消しています。

おおまかな処理の流れ

  1. main.php
  2. init.php
  3. Utility:phpでレスポンスを解析
  4. Wiki.phpでWikiデーターを取得
  5. Renderer\*phpでWikiデーターをパースし、HTMLに変換する((Elementは主にブロック型、Inlineは主にインライン型のWiki書式のパースを行います。)
  6. View.phpでテーマデーターをパース
  7. Render.phpでテーマとパースされたWikiのHTMLデーターをマージ
  8. Header.phpで出力