複数バリデーション定義ファイルの統合

6 views
Skip to first unread message

KUMAKURA Yousuke

unread,
Sep 19, 2007, 3:48:28 AM9/19/07
to piece-framew...@googlegroups.com
熊倉です。

# 微妙に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 という名称で統合する

くらいで利用できるとよいですね。

Reply all
Reply to author
Forward
0 new messages