Podstawy

PHP zgłasza błędy w odpowiedzi na różne wewnętrzne warunki błędów. Mogą być one użyte do zasygnalizowania różnych błędnych sytuacji i można je wyświetlić lub zapisać do logów, zależnie od potrzeb.

Każdy błąd generowany przez PHP jest określonego typu. Dostępna jest lista tych typów wraz z krótkim opisem ich zachowania i tego, przez co mogą być wywołane.

Obsługa błędów w PHP

Jeżeli nie ustawiono handlera - funkcji obsługującej błędy, PHP obsłuży każdy występujący błąd zgodnie ze swoją konfiguracją. To, które błędy są raportowane, a które ignorowane zależy od dyrektywy error_reporting w pliku php.ini lub od wywołania funkcji error_reporting() w trakcie działania skryptu. Wysoce zalecane jest ustawienie dyrektywy konfigurcacyjnej, ponieważ niekóre błędy mogą wystąpić jeszcze przed rozpoczęciem wykonywania Twojego skryptu.

W środowisku deweloperskim powinieneś mieć zawsze ustawiony error_reporting na E_ALL, ponieważ musisz wiedzieć o problemach zgłaszanych przez PHP i naprawić je. Na produkcji prawdopodobnie będziesz chciał ustawić to na poziom dający mniej informacji, taki jak E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, ale w wielu wypadkach E_ALL także jest odpowiednie, gdyż może zagwarantować wczesne ostrzeżenie o potencjalnych problemach.

To, co PHP robi z tymi błędami zależy od dwóch kolejnych ustawień php.ini. display_errors określa czy błędy są pokazywane jako część wyniku działania skryptu. Ta opcja powinna zawsze być wyłączona w środowisku produkcyjnym, ponieważ może zawierać poufne informacje, takie jak hasła do bazy danych, jednak zazwyczaj jest dobrze włączyć ją w śodowisku deweloperskim, gdyż gwarantuje natychmiastowe powiadomienie o problemach.

Poza wyświetlaniem błędów, PHP może również zapisywać je do logów, gdy log_errors jest włączone. To zapisze błędy do logu systemowego lub pliku określonego przez opcję error_log. Jest to szczgólnie użyteczne w środowisku produkcyjnym, bo możesz zapisać wszystkie błędy jakie wystąpią i później generować raporty na ich podstawie.

Obsługa błędów przez użytkownika

Jeżeli domyślna obsługa błędów przez PHP jest niewystarczająca, możesz także obsłużyć wiele typów błędów przez swój własny handler, który ustawia się używając funkcji set_error_handler(). Mimo iż niektóre typy błędów nie mogą być obsłużone w ten sposób, reszta może być obsłużona w sposób, który odpowiada potrzebom skryptu: na przykład pokazując specjalną stronę błędu użytkownikowi, a bardziej szczegółowe informacje zapisując do logu lub wysyłając emailem.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top