Software Engineer and Web Developer's Diary

1年後の自分に向けて

validation の共通化

CakePHP でバリデーションを共通化するにはどうすればいいか?
チェック項目でよく使うバリデーションは app_model.php などに追加すればいい。
今から考えるのはチェックメソッドの共通化ではなく、チェック内容の共通化。

var $validate = array(
'login_id' => array('rule' => array('alphaNumeric')),
'password' => array('rule' => array('alphaNumeric'),
                             'rule' => array('between', 10, 15),
);


例えば上記のようなログイン ID とパスワードをチェックする $validate があるとして、このパターンのバリデーションを複数個所で使いたい時(ログインチェックの時と新規登録の時とか)どのように共通化すればいいか。

普通はモデルのクラス内に直書きしているので関数化しないと共通化できない。ではどのように関数化すれば一番メンテナンスし易くなるかを考える。