Jezeli chodzi o obsluge bledow w systemie, to proponuje uzyc funkcji dostepnych w PHP, czyli trigger_error() oraz set_error_handler().
Na samym poczatku, w pliku common.php nalezy zadeklarowac funkcje, ktora bedzie obslugiwala bledy. Nazwijmy ja message_die(). Powinna posiadac taki naglowek:
message_die($err_no, $msg_text, $err_file, $err_line)
Gdzie:
- $err_no to poziom bledu (np. E_NOTICE, E_WARNING, E_USER_ERROR itp)
- $msg_text - komunikat bledu
- $err_file - nazwa pliku w ktorym wystapil blad
- $err_line - numer linii w ktorym wystapil blad
Nastepnie w pliku common.php powinnismy uzyc funkcji set_error_handler() do ustawienia procedury obslugi bledu:
set_error_handler('message_die');
Teraz kazdy blad, wygenerowany przy uzyciu funkcji trigger_error() bedzie kierowany do procedury obslugi - message_die(). Np.:
trigger_error('Oto blad');
Jezeli nie podamy drugiego, opcjonalnego parametru ktory oznacza poziom bledu, jako domyslny zostanie przyjety blad E_USER_NOTICE. Teraz proponuje, aby w funkcji message_die() napisac kod obslugii dla bledow E_USER_ERROR oraz E_USER_NOTICE. Przyjmujemy, ze E_USER_ERROR to powzny blad, musimy wyswietlic komunikat (bez korzystania z szablonow) oraz zapisac tresc bledu do pliku error.log. Jezeli mamy do czynienia z bledem E_USER_NOTICE, to zakladamy, ze blad nie jest na tyle powazny, mozemy skorzystac z szablonow, zeby wygenerowac komunikat.
Powazne bledy to np. bledy SQL na najnizszym poziomie (np. niemoznosc polaczenia z baza danych), brak danego pliku, takie bledy teoretycznie nie powinny sie nigdy pojawic.
"Luzniejsze" bledy to np. bledy w skladnii SQL, blad 404 umozliwiajace wygenerowanie szablonu.