呼び出す仕組みはどうなるのか。

上記のようにフレームワークを捕らえたとして、呼び出す仕組みの方をどうするかが問題である。複雑な遷移を扱おうとすると、呼び出し側の方も都度記述してやる必要があるだろう。

シンプルに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という事になるのか。