MVCモデルを意識したお問い合わせフォーム構造を作ったので
ちょっと頭の整理を兼ねてメモっておく。
コントローラ的なもの index.php confirm.php complete.php
ビュー的なもの indexSuccess.php confirmSuccess.php completeSuccess.php
モデル的なもの sendmail.php validate.php config.php
index.phpにアクセスがあるとフォームの入力画面であるindexSuccess.phpが表示される。
この時セッションの有無も見ているが最初のアクセスでは関係ない。
indexSuccess.phpからはconfirm.phpに値がPOSTされる。
ここではvalidate.phpによってリクエストデータのチェックが入る。
エラーフラグが1つでも立っていた場合(NG)はindexSuccess.phpに戻される。
エラー判定がONになっている箇所は強調表示してユーザーへ示す。
バリデート通っていたらconfirmSuccess.phpへ値が渡されてユーザーによる確認が行われる。
またバリデート通った時にセッションへリクエストデータが登録されるので、修正の場合は内容が保持された(既に入力)状態になっている。
確認画面でOKが出たらcomplete.phpへ進む。
こちらではsendmail.phpの関数に値を渡して、メールを送信する。
送信後にセッションは破棄される。
今回MVCっぽく分けたことでリクエストデータの扱いが楽になりました。
バリデート通るか通らないかで2つのURLへ分岐するので、コントローラーで
保持していることでどちらにも値を渡せるのが便利でした。
確認画面でも完了するか修正するか分かれているので、同じく楽になる。
さらにMVCっぽく分かれているのでビューには基本処理を書かない
コントローラーにはリクエストされたデータの処理
モデルでは実際のメール処理やバリデート処理
(今回はDB使ってないのでモデルの用途があれですが)
これが明確になるので、どこに何を書けばいいか、書いてる方もわかりやすい!
=読みやすいコードになっているのかもしれない。
また素のPHPだけで作ることになったら意識してやってみよう。