3.0.3で行う変更

3.0.3では以下の変更を行います(というか行ってます)。

  1. ファイル生成スクリプト(generator)を追加
  2. bobchinさん作のFilter_SimpleViewの統合
  3. Hawkさん作のFilter_FlexyViewの統合
  4. プロパティインジェクションの導入
  5. Filter_DIContainerに関して、複数ファイルを指定できるように拡張

(1)は既に紹介しているようにコマンドラインで実行すれば必要なファイルがさらさらっとできるというものです。これによって結構作業スピードはアップすると思います。(おそらくMapleを使って開発をされてる方は俺generatorをつくってるんじゃないすかね。標準でそれがあるというのが重要だと思っています)

(2)(3)はSmarty依存といわれるView部分のバリエーションを広げようというものたちです。SimpleViewがtemplateファイルがphpそのままというもので、FlexyViewはSmartyではなくてFlexyをつかったものということになります。

(4)は、いままでリクエストパラメータやDIContainer管理のオブジェクトをActionやその他オブジェクトにインジェクションするときにsetterが必要としていたんですが、setterがなくても対応するプロパティがあれば直接インジェクションさせるというものになります。これでたくさん入力項目があるフォームをうけとる際にその数だけsetterを準備する必要はなくなります。(必要に応じてsetterを準備してそれで受けるということもできます。setterを準備すればそちらが勝つということになりますので)

(5)は、(1)(4)の関係でDIContainer周りのファイルをいじるので勢いで拡張してみるかなと。DI2では既にdicon.iniを複数指定できるようになってたので、標準品も複数対応しようと思います。

3.1系は結構時間をかけて練り上げることになると思うので、しばらく3.0系を使ってガンガン開発をするためのステップアップとして3.0.3および3.0.4を位置づけたいと思います。

というわけで、3.0.3/3.0.4は3.0系をより使いやすくするということを念頭に置いたアップデートになりますので、こういうのがあるといいなということがあればコメントよろしくお願いします。

setterがなくなるなら・・・

getterもどうにかするかなというのを考えていたり。現在のSmaryをつかったFilter_Viewにおいて、{action->getName} みたいな記述をするようにしてるけど、{$action.name}とできるようにして、Action側のgetterを省略可能にしようかなと考えています。(これもおそらく俺Maple化している方はいろいろなアプローチでgetterなんて使わないようにしてるでしょうね・・・)

「Injectionの簡素化」の逆アプローチで、ViewフィルターでActionのプロパティを取得して配列にまとめるようにして、その際にgetterがあればそれを優先し、なければプロパティの値を直接とってくると。そうすれば特に値取得時に特殊な変換を必要としない場合はgetterは必要ないという感じでいけないかなと。(普通あまり特殊な変換を必要としないですよね・・・)

setter/getterを双方省略可とすることによりActionクラスはびっくりするくらい簡単なものでよくなるので、是非やりたいなと思います。