# 微妙にTicketの時間とでズレがでてますが。
実は Piece_Right において、複数あるバリデーション定義ファイルを
統合 (merge) して一度の validate で済ませるというテクニックが
できるようインターフェースが準備されていますが、これを
Piece_Unity_Validation を使用して実現しようとすると、思ったより
ステップ数が多くなってしまいます。
# 1. Piece_Unity 側で設定しているバリデーション情報を取得
$config = &$this->_context->getConfiguration();
$configDirectory = $config->getConfiguration('Configurator_Validation',
'configDirectory');
$cacheDirectory = $config->getConfiguration('Configurator_Validation',
'cacheDirectory');
# 2. 1つ目のバリデーション定義 (Form2) を作成する
$validationForm2Config =
&Piece_Right_Config_Factory::factory('Form2',
$configDirectory,
$cacheDirectory
);
# 3. Form2 定義情報を Piece_Unity_Validation 内の Config へ
$validation = &$this->_context->getValidation();
$validationConfig = &$validation->getConfiguration();
$validationConfig->merge($validationForm2Config);
# 4. Form1 + Form2 として validate を実施
$validation->validate('Form1', $user);
Piece_Right_Config などのオブジェクトなども登場してたりと
なかなか大変なので、
$validation->mergeValidationSet('Form1');
$validation->mergeValidationSet('Form2');
$validation->validate('Form', $user); # Form という名称で統合する
くらいで利用できるとよいですね。