この土日のTODO

この土日もMapleの開発を進めます。まわりから早く正式版にしちゃえば?という意見をもらってるのですが、まだ悩んでます。Seasarのからさわぎのテクノロジトラックをきいてみてなんか刺激を受けて大きく変更をかけてしまいそうな自分がちょいと怖くて、どうするかなと・・・ま、そうなったら3.0.0→3.1.0にしてしまってもいいんすが。

とりあえず、この土日にすることは以下のようなこと。

  • ディレクトリ構成の大幅変更
  • コア部分に関してFilterの実行順序の縛りをはずす
  • DIContainer部分のコード整理
  • ファイルアップロード関連を実装する(Filterで対処)
  • セッション管理を実装する(Filterで対処)
  • トークン管理を実装する(Filterで対処)

上記の変更で、Mapleコアは以下のものを行うものということになる。特定のFilterに依存することはなくなる。Actionを実行するFilterは設定ファイルの書き方によって差し替えできるし。

  1. リクエストパラメータを解析。
  2. 特定のリクエストパラメータによって使用するディレクトリを決定。あわせてActionChainを構築。
  3. 決定したディレクトリにある設定ファイルを解析。
  4. 設定ファイルの内容に応じてFilterChainを構築する。このときFilterChainの最後には必ずActionを実行するFilterを追加する。
  5. 構築されたFilterChainを実行する。
  6. FilterChain実行後、ActionChainに実行すべき次のActionが残っていれば再度(3)〜(5)を繰り返し。残ってなければ終了

Mapleコアはあくまでも薄いフレームワークです。ConvertやValidate、はたまたDIContainerをつかったActionへのリクエストパラメータのInjectionができたりするのは、周辺のFilterの仕業で、それは狭い意味でのMaple自体の機能ではないと言い切ってもいいと思います。

広い意味でのMapleというのはMapleコアを使った実装サンプルって感じですね。他の方がMapleコアを使って「よりよいMaple」ってのを作成されればそれを使ってみたいなというのもありつつ・・・

さて、がんばりますか。(フレームワークだけに時間をかけれなくなってきてるし。もうそろそろその上でのCMS構築にかからないと・・・)