PHPとMVCメモ
ビューって要るのかな。
ビューの代わりがテンプレート?それともビューからテンプレートを使う?
index.php?module=User&action=userShow&userId=1
$ctrl->execute();
class UserAction extends Action { function userShow(){ $userDAO = & new UserDAO(); $user = $userDAO->getUserData($this->request->get('userId')); $this->result->add('name', $user->getName()); ・ ・ } }
result->add() が template->assign() みたいな感じで。
User_userShow.htmlを読み込んで表示。
コントローラも自分で書きたい。
class UserController extends Controller { function userAdd(){ if (エラーチェック){ $userDAO = & new UserDAO(); // ユーザデータ追加処理 // 変更後に表示 // 暗黙的にテンプレートファイルが切り替わる // 明示的に指定する場合は // $this->template->setTemplate('User_UserInput.html'); $this->action->execute('UserShow'); }else{ // $this->result->add('errorMessage', 'error'); $this->action->execute('UserInput'); } } }
データ追加が成功したらデータの表示、エラーならもう一度入力画面を表示、とか。
フォームの入力チェックはエラー専用の関数でしない方が自分としては分かりやすい。
値のチェックは専用の関数でいいけれど、画面の遷移までエラー処理関数でやってしまうと何が何だか分からなくなるような。
if ($this->request->isError()) みたいにロジックの中で判断すればいいんじゃないかな。
エラーと言えどもフォームの入力ミスは想定範囲内のことなので、純粋なエラーはDBにあるはずのデータが無かったり設定ファイルが読み込めなかったりするときだけでいいんじゃないだろうか。
なんかロジックがコントローラに入ってしまった。まとまりきらん。。