validation拡張機能追加
基本的な入力チェックはフレームワークに入ってるんだけど、もっとアプリ独自のチェックもバリデータでチェックしたい。
フレームワークの基本クラスをmaple流に拡張できるようにはしていたものの、バリデータクラスは普通にnewしていた。
設定ファイルにバリデータのクラス名を書くようにしておいて、それがあった場合はそっちを優先するようにした。
バリデータはコアの一部になっていてコントローラから呼び出している。だからコンポーネントとして自動生成云々の機能が使えない。ちょっとまずいなぁと思いつつ、取り急ぎ修正してみた。
これでDB接続して値をチェックするなどのバリデータが設定ファイルで書けるようになった。
こんな感じ。
[validator] mail:required:1 = "メールアドレスが入力されていません" mail:mail:1 = "メールアドレスが正しい形式ではありません" mail:notExists = "既に登録されているメールアドレスです"
1はストッパーでそれ以下の同一変数に対するチェックを終了する。
例えばこれを mailValidate.ini として保存して、アクションの設定ファイルで
[include] validation = mailValidate.ini [validator] error = mailError [result] mailError = MailInputForm
のように書く。新規登録や既存データ修正など複数のアクションから使い回せる。includeで読み込んだ設定はマージされる。
便利になってきた。
maple流(?)のini設定ファイルでもかなりやれることがあるな。