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.