設定ファイルの続き。
設定ファイル (webfront.conf) |
[action-mapping]
/new = /src/action/CreateAction
/update = /src/action/UpdateAction
/delete = /src/action/UpdateAction::delete
/welcome = /src/pages/welcome.tpl
/read = /src/action/ReadAction#command
[form-mapping]
/new = /src/form/CreateForm
/update = /src/form/UpdateForm
/delete = /src/form/UpdateForm
[filter-mapping]
/* = CFilter
/update = AFilter, BFilter
[filter]
AFilter = /src/filter/AFilter
BFilter = /src/filter/BFilter
CFilter = /src/filter/CFilter
|
前回まではアクションの設定でしたが今回はフォームの設定です。
このフレームワークもStrutsと同じように画面ごとにフォームを用意し、データをフォームクラスに保持することが可能です。設定次第では画面ごとではなく複数の画面で一つのフォームを使い回ししたり、フォームを一切使わない画面という設定も可能になっています。簡単な画面などはフォームを使わないのも手でしょう。フォームの設定は
[form-mapping]に記述します。 記述の仕方は簡単でアクションパス = フォームのクラスパス、という感じになります。これはアクションの記述の仕方と同じです。
上記の設定ファイルだと、/new に対してはCreateFormクラスをフォームのクラス、/update にはUpdateFormクラス、/delete にはUpdateFormクラスということになります。ここでカンのいい方は気付いたと思いますがフォームは複数のアクションパスで同一のフォームを記述することができます。/update と /delete は同じUpdateFormクラスをフォームとして使うということです。
また
[action-mapping]でアクションパス /read を定義していますが、
[form-mapping]では /read を定義していません。この場合アクションにReadActionクラス、フォームは無し、という設定になります。この設定も有りです。この設定だとアクションクラス内のフォーム変数の値はnullとなり、リクエストパラメータを取得する場合はHttpRequestオブジェクトのget()を使って取得することになります。
アクションクラス (ReadAction.php) |
class ReadAction extends DispatchAction
{
protected function getKeyMethodMap()
{
return array(
"button.list" => "list",
"button.back" => "back"
);
}
public function list($request, $form)
{
$name = $request->get("name");
return "read.tpl";
}
public function back($request, $form)
{
return "read.tpl";
}
}
|
フォームクラスはこの他にバリデートチェックをするメソッドもありますがこれはまた次回に紹介します。一連の設定の説明が紹介しきれた時にこのフレームワークをダウンロードできるようにしたいと思いますので是非使って頂いて感想等をお聞かせ頂ければと思っています。