NanoA の View-Controller 実装

  • 簡潔な View-Controller モデル
  • コンテナ指向
  • 遅延ロードによる高速動作

てのが NanoA の特徴だと思うけど、View-Controller モデルの話。要点として、

  • PATH_INFO の利用による、ディスパッチテーブルレス設計
  • View と Controller が可換

てのは Shibuya.pm で話したけど、昨日、プラグインも Controller (あるいは View) として動作するようにした。というのは、たとえば OpenID に対応しようと思うと、API の追加と Controller の追加、の双方が必要が必要になるから。

一般論としても、プラグインと VC を区別すべき理由はないように思う。VC は共通クラス、プラグインは VC のサブクラス、でいいんじゃないか。