クラス設計。
なおす

Xとは Edit

フレームワーク/WikiEngine.
フレームワーク/Webアプリケーションから呼ばれる。

アプリケーション全体で使用されるものを定義。

クラス構造 Edit

X/Actor[?] Edit

リクエスト送信。PageNameとかUsecaseNameとかStepNameとかViewNameとか含む。
fw/Webfw/Wiki→Usecase

X/Usecase[?] Edit

プラグイン
コントロールクラス。
WikiEngineから呼ばれる。リクエスト毎に別クラス。
MediaWikiの'Action'、PukiWikiの'cmd'にあたるものと一対一対応。

→User

X/User[?] Edit

  • 鍵←UserID
    →Page

X/Page[?] Edit

Wikiのデータを保存するもの。
利用者が手作業で書く。どういう記法を使うかでデータアクセス時の反応が違う。
ページ/属性領域を1つ持つ。
システムが書き込むのはページ/裏。
URIでプラグインを呼んだときは仮のページ。その場合でも流れは同じ。

→Pages/Name
永続化
→PageElement(記法に書かれると呼ばれる)

X/Pages/Name[?] Edit

X/永続化[?] Edit

ページ以外も永続化
ファイルシステム使用。

  • Page←PageName
  • PageProperty←PageName
  • Session←SessionID

X/Pages/Element[?] Edit

ページの構成要素。
記法から生成したオブジェクト。各種記法や一続きのプレーンテキスト部分などが1つのオブジェクトになる。
ElementがElementの集約にもなる。ネスト構造。

→PageElements

X/Pages/Elements[?]/… Edit

PageElementのサブクラス。プラグインNotations系/DynamicNotations系/Semantics系/Plains系。

X/Pages/Elements/Notations[?] Edit

記法を統一する抽象クラス。

X/Pages/Elements/DynamicNotations[?] Edit

例えば自動リンク
記法はあるが決まっていないもの。

X/Pages/Elements/Semantics[?] Edit

検索でスコアを上げる記法
数詞や色名など。

X/Pages/Elements/Plains[?] Edit

ただのテキスト。