FormパラメータのValidateするモジュールを作るメモ
毎度お得意の車輪の再発明シリーズ。
- CGI.pm などで解析済みの Form (Query) パラメータを validate する。
- validate した結果、valid なものは元の値と入れ替え、外れたものはパラメータごと削除する。
- エラーになったパラメータ名のリストやエラー内容も提供する。
- ルールによっては、パラメータ内容の簡単な変換も行う。
- (自作)フレームワークのプラグインにしたい。
内部的に、ルールを定義するクラスと実際の validate をするクラスが必要。
ルールのクラス
validateクラス
validate結果。
- $v->is_valid(NAME) でパラメータ名を渡すと、エラーの場合は false 値を、エラーでない場合は true 値 (0 but true?) を返す。
- $v->error(NAME) でパラメータ名を渡すと、エラーの場合はエラー内容を、エラーでない場合は undef を返す。
- $v->errors() でエラーになったパラメータ名の一覧を返す。
- CGI.pm との互換性のため、$v->param() を引数無しで呼ぶとエラーでないパラメータの名前を配列で返す。
- CGI.pm との互換性のため、$v->param(NAME) でパラメータ名を渡すと、パラメータの内容を返す。
- CGI.pm との互換性のため、$v->param(NAME, VALUE) でパラメータ名と値を渡すと、パラメータの内容を更新する。
CGI.pm 互換のメソッドを作るよりも、もとのインスタンスが持っているパラメータを直接書き換えた方がいいかもしれない。
お、そろそろ時間がないので今回はこの辺で。