だいぶ片付いてきた

3.1.0に向けての作業ですが、残りはFlexyViewの統合とSmartyのdefault_modifiersをどうするかくらいになってきました。

Componentクラスのファイル命名規則の変更対応をしましたが、やっぱりファイル名が短いとすっきりしますね。Actionクラスもしたいところですが、Componentとはちょっと約束事がちがってくるんですよね・・・

Componentクラスの場合は、「xxx.yyy.zzz」が「components/xxx/yyy/Zzz.class.php」となるのに対してActionクラスは「xxx_yyy_zzz」を「modules/xxx/yyy/zzz/Zzz.class.php」とするってのは分かりにくいですよね。けどこうしないとディレクトリ毎にActionを分けて、maple.iniとかをおくという今の形が保てないし。

やっぱりファイル名が短い方が扱いやすいし、これでもいいかと思ったりもしますが、みなさんはどう思われます?

Converterの拡張

Converter関連ですが、3.1.0で拡張しようと思っています。今のConverterは基本複数の値を渡されても先頭の変数しか対象としてないものがほとんどですが、全てに対してかかるようにしようと思います。(なぜか、3.0.1のときに Converter_Trim だけ複数対応してますね・・・)

今はこういう感じでばらばら書いてますが、

[Convert]
name.toHalf =
email.toHalf =
year.toHalf =
month.toHalf =
day.toHalf =

こういう風にかけるようになります。

[Convert]
name,email,year,month,day.toHalf =

合わせてFilter_Convertを拡張して以下のような記法もありにしようかと思います。

[Convert]
/.*/.toHalf =
/^na.*/.toFull =

この拡張の狙いはDTO(Data Transfer Object)およびDTH(Data Transfer Hash)をConvertでつくっちゃおうというものです。以下のようにするとリクエストパラメータが入ったオブジェクト(StdClassにはいる)やハッシュができるという形にしようかと思っています。これによりLogicに渡す前にActionで一回オブジェクトに詰め替えたり、componentをわざわざ準備しなくてもよくなるかなと考えています。

[Convert]
/.*/.toObject = dto
/.*/.toHash = dth

今までだとConvertはValidateの前にかけるので、こういったことができなかったのですが、3.1.0でのFilterのエイリアス対応の結果、Convertを2回使えるようになるので、「Convert⇒Validate⇒Convert(aliasつけて追加)」ということができるようになります。

ここまで拡張すると素直に Convert2 にいれかえちゃえ!と言う声もありますかね。今ってConvertとConvert2ってどっちがよくつかわれてるんでしょうか。

今後、いろいろなConverterをつくり続けていってもらうとして、どっちを標準としておいた方がいいかというのもアンケートをとった方がいいですかね。