呼び出す仕組みはどうなるのか。
上記のようにフレームワークを捕らえたとして、呼び出す仕組みの方をどうするかが問題である。複雑な遷移を扱おうとすると、呼び出し側の方も都度記述してやる必要があるだろう。
シンプルにPHPネイティブでやるとすると、以下のようになるだろうか。
個別のアクションは、ファイルを別けて記述する。そのアクションに対応するビューも別けて記述する。入力周りも別けて記述する。そのわけ方は、規約で持って決める。
それらの呼び出しは、swith文を使ってPHPで書いていく事とする。たとえば、こんな感じ。個別の処理は、クラスと関数でなく、べた書きでグローバル変数を使っているとする。
switch ($_GET['action']) { default: include input_form.php; break; 'confirm': include from_validate.php; if ($form_ok == true) { include confirm_view.php; } else { include error_msg.php; include input_form.php; } break; 'done': include form_done.php; include done_view.php; }
個別処理に関数やクラスを使っても良いが、各caseで関数などのコールが入るだけで、やることは変わらない。
PHPのフレームワークは、個別処理をどう別けて記述するかを決めるところが肝であって、mojaviとか見たいに、コントローラクラスなんて作らなくてもいいやんと言う気もする。柔軟性高いし速いし。
ただその分、コントローラの所のコードを書くのが単調で面倒だというのは、その通りだけど。
ただ、何らかの設定ファイルから、上記のswith文のPHPコードを吐き出してくれるようなコンパイラ(?)でも作れば、その面倒さには対処できるよな。コンパイラでなく、インタプリタでやってるのが、mojaviとかmapleという事になるのか。