Validatorはこんなのがいい
- バリデータは子にバリデータを持てる
- 子のバリデータは名前をつけてセットする
- 子のバリデータをどう呼び出すかは親に依存
バリデータが子を持つというのは、配列を受け取ったときに要素のバリデーションを委譲したり、部分文字列のバリデーションを委譲するなどに使う。
子のバリデータをセットするときにはバリデータに対して以下のように呼び出す。
$validator->setChild('name_of_validator', $validator_instance);
これによってさまざまなパラメタをもたせた同クラスバリデータを複数持たせたり、別の用途で同一のバリデータをセットすることができる。
子のバリデータの呼び出しが親に依存というのは、利用者はどのように呼び出されるかを気にせず、ただ子を渡してやればいいだけということである。
こんな機能をMojaviのValidator(とその補佐クラス)に追加してみようと思う。