Pageクラス探索の仕組み

次期Moony(仮称:M2)について、Pageクラスベースで動く仕組みを考えてみる。

Pageクラスというのは、現行Moonyで言うところのアクションクラスのこと。例えば、/foo/bar/bazというURLにアクセスがあった場合、以下の順番でPageクラスを探索する。

  1. /pages_dir/foo/bar/baz.php (クラス名: Foo_Bar_Baz)
  2. /pages_dir/foo/bar.php (クラス名: Foo_Bar)
  3. /pages_dir/foo.php (クラス名: Foo)
  4. not found

baz.phpが存在せず、bar.phpが存在する場合、Foo_BarがPageクラスとして使用される。その場合、「baz」はPATH_INFOから取得することで実行パラメータとして利用できる(取得を容易にするためのヘルパーメソッドを用意する)。

どうだろう。