Source for file ValidatorManager.php
Documentation is available at ValidatorManager.php
* Teeple2 - PHP5 Web Application Framework inspired by Seasar2
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
* @author Mitsutaka Sato <miztaka@gmail.com>
* @license http://www.php.net/license/3_0.txt PHP License 3.0
* 繝輔か繝シ繝�繧サ繝�ヨ縺ョ繝舌Μ繝��繧キ繝ァ繝ウ繧貞ョ溯。後@縺セ縺吶�
* 'name' => '繝輔ぅ繝シ繝ォ繝牙錐', // 蠢���
* 'label' => '繝ゥ繝吶Ν蜷�', // 莉サ諢�
* 'Validator蜷�' => array(
* 笆�繧ィ繝ゥ繝シ繝。繝�そ繝シ繧ク縺ォ縺、縺�※
const DEFAULT_MESSAGE =
'{0}縺梧ュ」縺励¥蜈・蜉帙&繧後※縺�∪縺帙s縲�';
* YAML蠖「蠑上�險ュ螳壹r繝代�繧ケ縺励∪縺吶�
* @param $yaml YAML蠖「蠑上�譁�ュ怜�
$yamlConfig =
Horde_Yaml::load($yaml);
//$this->log->debug(var_export($yamlConfig, true));
$validationConfig =
array();
foreach($yamlConfig as $field =>
$validations) {
if (count($fields) ==
2) {
$oneConfig['label'] =
$fields[1];
$oneConfig['name'] =
$fields[0];
$oneConfig['validation'] =
$validations;
//$this->log->debug(var_export($validationConfig, true));
return $validationConfig;
* 謖�ョ壹&繧後◆config縺ァ繝舌Μ繝��繧キ繝ァ繝ウ繧貞ョ溯。後@縺セ縺吶�
* 繧ィ繝ゥ繝シ縺後≠縺」縺溷�エ蜷医�繧ィ繝ゥ繝シ繝。繝�そ繝シ繧ク繧堤オ�∩遶九※縺ヲ
* Request縺ォ繝。繝�そ繝シ繧ク繧定ソス蜉�縺励∪縺吶�
public function execute($obj, &$config) {
foreach($config as $fieldConfig) {
$fieldName =
$fieldConfig['name'];
foreach($fieldConfig['validation'] as $validatorName =>
$attr) {
// Validator繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧剃ス懈�
throw
new Teeple_Exception("Validator縺ョ繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧剃ス懈�縺ァ縺阪∪縺帙s縲�($validatorName)");
foreach($attr as $key =>
$value) {
$validator->$key =
$value;
if (! $validator->validate($obj, $fieldName)) {
$this->setErrorMessage($validator, $validatorName, $attr, $fieldConfig);
* 繧ィ繝ゥ繝シ繝。繝�そ繝シ繧ク繧偵そ繝�ヨ縺励∪縺吶�
* @param Teeple_Validator $validator
* @param string $validatorName
* @param array $validatorConfig
* @param array $fieldConfig
private function setErrorMessage($validator, $validatorName, &$validatorConfig, &$fieldConfig) {
// 繝。繝�そ繝シ繧ク縺ィ繝ゥ繝吶Ν縺ョ蜿門セ�
$msg =
$this->getMessage($validatorName, $validatorConfig);
$label =
$this->getLabel($fieldConfig);
foreach($validator->args as $propName) {
// 繝。繝�そ繝シ繧ク繧偵ヵ繧ゥ繝シ繝槭ャ繝医@縺ヲ繧サ繝�ヨ
* 繧ィ繝ゥ繝シ繝。繝�そ繝シ繧ク繧貞叙蠕励@縺セ縺吶�
* @param string $validatorName
* @param array $validatorConfig
private function getMessage($validatorName, &$validatorConfig) {
return $validatorConfig['msg'];
$msg =
$this->resource->getResource('errors.'.
$validatorName);
$msg =
self::DEFAULT_MESSAGE;
* @param array $fieldConfig
private function getLabel(&$fieldConfig) {
return $fieldConfig['label'];
$label =
$this->resource->getResource('form.'.
$fieldConfig['name']);
$label =
$fieldConfig['name'];