[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Класс валидации
sg.com
Класс для валидации организовал. Кто в этом понимает, подскажите пожалуйста, что там неверно организовано и как сделать лучше.
 
class Valide
{
public static $error = '';
protected static $filds, $number = 0;

/**
*/

public static function setForm($form)
{
$filds = \Config::get('local', 'filds');

if(in_array($form, $filds))
self::$filds = $filds[$form];
}
/**
*/

public static function getError($val, $patt)
{
$valids = \Config::get('local', 'valide');
$pattern = in_array($patt, $valids) ? $valids[$patt] : '#.+#u';
self::valide($pattern, $val);
}
/**
*/

public static function valide($pattern, $val)
{
if(!preg_match($pattern, $val))
self::$error .= ' поле '. self::$filds[self::$number] .' не корректно заполнено <br/>';

self::$number++;
}
}


вот настройки для класса

return array(

/**
* Настройка страницы
*/

'valide' => array( 'ru' => '#^[а-яё\s\d\/\.\,\-]{0,4}$#ui', //
'en' => '#^[a-z\s]{0,4}$#ui', //
'num'=> '#^[\d]+$#ui', //
),

/**
* Настройка страницы
*/

'filds' => array( 'region' => array('Регион'), //
'company' => array('Компания', 'Адрес', 'Телефон', 'Регион'), //
'photo' => array('Галерея', 'Линейка', 'Фото', 'Компания'), //
),

);


а так им пользуюсь. Тут нюанс, порядок проверок должен совпадать с порядком массива в настройках. В противном случае - неверное указание на поле и несоответствие.

public static function optionCompany($company, $address, $telephone, $region)
{
Valide::setForm('company');
Valide::getError($company, 'ru');
Valide::getError($address, 'ru');
Valide::getError($telephone, 'num');
Valide::getError($region, 'ru');

if(empty(Valide::$error))
Goods_model::addCompany($company, $address, $telephone, $region);
else
parent::$tpl->assign('error', Valide::$error);
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.