Как уже говорилось, список $error[]
кажется хорошим подходом. Но, как пример, вы можете упростить ваш код до списка проверки и цикла:
$fields = array(
"username" => language( 'ERROR_USERNAME_NULL' ),
"password" => language( 'ERROR_USER_PASS_NULL' ),
"name" => language( 'ERROR_USER_REALNAME_NOT_VALID' ),
...
);
foreach ($fields as $field=>$error_msg) {
if (empty($_POST[$field])
|| method_exists($validation, "valid_$field")
&& !$validation->{"valid_$field"}($_POST["field"]))
{
$errors[] = $error_msg;
}
}
Очевидно, вам нужно лучшее описание, если вам действительно нужно разделить тесты _NULL и _NOT_VALID. Я бы лично пропустил это. Но, возможно, ваш класс проверки справится с этим. Создайте один метод verify_fields_not_empty () и второй test_valid_format ($ per_list). Возможно, вам понадобится более умный способ сопоставить имена полей с методами валидации, но это просто вопрос абстрагирования.
Но что более важно, вы можете адаптировать коллекцию $error[]
в центральном месте. Я не уверен, что это необходимо, однако. Ваш массив ошибок уже можно использовать для печати журналов и . Это только если второй модуль приложения будет зависеть от формата объекта там ...