Вот моя стратегия работы с кодом проверки. Я предполагаю, что под «библиотекой проверки» вы подразумеваете те, которые просто проверяют, что электронная почта является электронной почтой, номера телефонов являются числовыми и не являются бизнес-правилами по своей природе.
Идея состоит в том, чтобы иметь каждый код бизнес-правила в качестве функтора - если это PHP, вы можете просто использовать строку для определения функции; для других языков вам, возможно, придется использовать шаблон стратегии. Определите интерфейс для функтора (не обязательно для PHP) и поместите его в массив.
Выполнить через массив, который вернет в буфер успех, ошибку и код ошибки. В конце проверьте буфер ошибок и определите, какая проверка не удалась. Используйте его для настройки вида.
Вот пример
$checkUniqueUserName = new CheckUniqueUserName();
$checkEmailNotUsed = new EmailNotUsed();
$validator = array();
$validator[$checkUniqueUserName->name()] = $checkUniqueUserName;
$validator[$checkEmailNotUsed->name()] = $checkEmailNotUsed;
$results = array();
foreach ($validator as $v)
{
$result[$v->getValidatorName()] = $v->execute($userInfo);
}
class CheckUniqueUserName()
{
public function execute($userInfo)
{
// SQL blah blah blah
if ($bNameUnique)
return array ('success' => 1)
else
return array ('success' => 0, 'error' => "$name is in used", 'error_code' => 'duplicate_name);
}
}
В конце у вас будет массив результатов, каждый из которых заполнен процессом проверки, и вы знаете, что не удалось, а что нет. Затем он может быть передан на клиентскую сторону для дальнейшей обработки, например, для выделения ошибочных полей. Код ошибки можно использовать для поиска правильного сообщения об ошибке и применяемого к нему форматирования.
Хотя я не совсем уверен, что вы имеете в виду под ответными отзывами.