SimEntryのDispatchを見てみましょう。
public function dispatch() { $controller = simg_create_instance(SIMG_PATH_CONTROLLER, SIMG_CLASS_USER_CONTROLLER); $output = simg_create_instance(SIMG_PATH_MODEL, SIMG_CLASS_USER_OUTPUT); $parameter = simg_create_instance(SIMG_PATH_MODEL, SIMG_CLASS_USER_PARAMETER); $db = simg_create_instance(SIMG_PATH_MODEL, SIMG_CLASS_USER_DB); $controller->run($output, $parameter, $db); }
ControllerのrunをコールするためにOutput、Parameter、Dbを生成しています。
simg_create_instanceはインスタンスを生成するSimg共通関数です。
生成するクラス名はSimg側で下記の通り宣言されている定数を使います。
SIMG_CLASS_USER_CONTROLLER=Controller SIMG_CLASS_USER_DB=Db SIMG_CLASS_USER_OUTPUT=Output SIMG_CLASS_USER_PARAMETER=Parameter
どうやらapplicationディレクトリ配下の規定のパス上のクラスを生成しているようですね。
require_once('SimgController.php'); class Controller extends SimgController { public function getDefaultEvent() { return EVENT_INDEX; } }
ほとんどの処理はSimg本体であるSimgControllerで実装されているようです。
ここで定義されているのはデフォルトEventです。
これはURLでEventパラメータが指定されなかった時に使われるデフォルト値であることは自明ですね。
ついでにOutput、Parameterは以下の通りです。
require_once('SimgOutput.php'); class Output extends SimgOutput { public function getHomeTemplate() { return TEMPLATE_HELLO; } public function getSystemErrorTemplate() { return TEMPLATE_ERROR; } }
require_once('SimgParameter.php'); class Parameter extends SimgParameter { }
Parameterは空っぽですね。
OutputのgetHomeTemplateはデフォルトページのようです。
getSystemErrorTemplateはエラー発生時のページの定義ですね。
Simg版「Hello,world」はDBを使っていませんので、Dbインスタンスは作られません。
Controllerはこれらのインスタンスを使ってrunするのですね。