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をつくり続けていってもらうとして、どっちを標準としておいた方がいいかというのもアンケートをとった方がいいですかね。