Podręcznik użytkownika CodeIgniter wersja 2.2.1


Obsługa błędów

CodeIgniter pozwala na raportowanie błedów w aplikacji, przy użyciu funkcji opisanych ponizej. Dodatkowo, posiada też klasę logowania błędów, co pozwala na zapisywanie błedów i komunikatów debugowania w pliku tekstowym.

Uwaga: Domyślnie CodeIgniter wyświetla wszystkie błędy PHP. Możesz chcieć zmienić to zachowanie kiedy skończysz pisac aplikację. W głównym pliku index.php, znajdziesz funkcję error_reporting(). Wyłączenie raportowania błędów NIE spowoduje, że w momencie wystąpienia błędu nie zostanie on zapisany w logu.

W przeciwieństwie do większości systemów jakie spotkamy wCodeIgniterze, funkcje błędów są prostymi proceduralnymi interfejsami, które są dostępne globalnie w aplikacji. To rozwiązanie, pozwala na wyświetlanie komunikatów błędów, bez potrzeby marwienia się o zakres klasy/funkcji.

Te funkcje pozolą na generowanie błędów:

show_error('message' [, int $status_code= 500 ] )

Ta funkcja wyświetli komunikat błędu za pośrednictwem następującego szablonu:

application/errors/error_general.php

Opcjonalny parametr $status_code decyduje o tym jaki kod nagłówka HTTP zostanie wysłany razem z komunikatem błędu.

show_404('page' [, 'log_error'])

Ta funkcja wyświetli komunikat błędu 404, za pośrednictwem następującego szablonu:

application/errors/error_404.php

Ta funkcja oczekuje, że ciąg który zostanie do niej przypisany, będzie ścieżką do strony, która nie została znaleziona. Weź pod uwagę, że CodeIgniter automatycznie pokazuje komunikat 404, jeśli kontroler nie może zostać znaleziony.

CodeIgniter automatycznie zapisuje do loga każde wywołanie błędu show_404(). Ustawienie drugiego, opcjonalnego parametru na wartość FALSE, zapobiegnie temu.

log_message('level', 'message')

Ta funkcja pozwala na zapisanie wiadomości w pliku logu. Musisz dostarczyć jeden z trzech "poziomów" w pierwszym parametrze, w zależności od typu wiadomości (debug, error, info), natomiast w drugim parametrze samą treść wiadomości. Przykład:

if ($some_var == "")
{
    log_message('error', 'Pewna zmienna nie posiada wartości.');
}
else
{
    log_message('debug', 'Pewna zmienna została poprawnie ustawiona');
}

log_message('info', 'Celem niektórych zmiennych jest dostarczanie wartości.');

Mamy trzy rodzaje wiadomości:

  1. Wiadomości błędów. Są to rzeczywiste błędy, takie jak błędy PHP lub błędy użytkowników.
  2. Wiadomości debug. Są to komunikaty, które pomagają w debugowaniu. Dla przykładu, jeśli klasa została zainicjalizowana, mozesz to zalogować jako wiadomość debug.
  3. Wiadomości informacyjne. Są to wiadomości o najniższym priorytecie, które doatrczają informacji o jakimś procesie. CodeIgniter natywnie, nie generuje żadnych informacji o tym statusie, ale Ty możesz chcieć użyć ich w swojej aplikacji.

Uwaga: Aby plik logu mógł być zapisany, folder "logs", musi posiadać odpowiednie uprawnienia. Musisz również ustawić odpowiedni "próg" dla wiadomości logowania w pliku application/config/config.php. Dla przykładu, możesz chcieć, aby tylko wiadomości błędu były zapisywane w logu, a pozostałe dwa typy nie. Jeśli ustawisz wartość na zero, to logowanie zostanie wyłączone.