2010-12-30 3 views
2

Привет Я создал модуль, который создает форму из допустимого xml, после отправки формы он перестраивает xml и проверяет его на схему xsd. если форма не была скомпилирована правильно, она возвращается к форме со всеми сообщениями об ошибках, получаемыми libxml_get_errors. проблема в том, что libxml_get_errors не генерирует удобные сообщения об ошибках. Есть ли способ расширить обработчик ошибок для создания более простых и удобных сообщений об ошибках?libxml_get_errors custom обработчик ошибок

if (!$doc->schemaValidate($schema_riferimento)) 
{ 
    $errors = libxml_get_errors(); 
    foreach ($errors as $error) 
    { 
    array_push($global_errors, $error->message); 
    log_message('debug', "Errore di validazione: ".$error->message); 
    } 
} 
+1

Что вы подразумеваете под "простодушным" и "более удобным для пользователя"? Можете ли вы привести пример? –

+0

Конечно ... типичная ошибка, генерируемая libxml_get_errors, такова: «'piva_utente': [facet 'pattern'] Значение 'IdentificativiRichiesta__piva_utente' не принимается шаблоном '\ d {11}'", я бы хотел отобразить такая ошибка, как «поле xxx должно быть 11-значным числом», или что-то вроде этого ... – Nextneed

+0

@Nextneed - откуда вы получили сообщение об ошибке? и вы уверены, что из libxml_get_erros не является сам xml? – ajreal

ответ

0

Я бы просто создал хэш, в котором вы сохраняете дружественные сообщения об ошибках, с помощью кода ошибки.

Например:

$friendly_errors = array(
         '0' => 'One friendly error message', 
         '1' => 'Another friendly error message 
        ); 
$friendly_error_message = $friendly_errors[$error->code]; 
log_message('debug', $friendly_error_message); 

Simple.