×
Vytvárame riešenia

Zobrazujeme chybové hlásenia v PHP

Nie každý má možnosť si vykonať nastavenia vývojového prostredia. V mojom prípade ide o nastavenia PHP a Apache, ktoré sú na vzdialenom serveri. Teoreticky ich nie je problém nastaviť napríklad cez WinSCP, ale s každou aktualizáciou servera by som musel túto činnosť vykonávať opätovne. Z tohto dôvodu ak je potrebné používam pre nastavenia PHP funkciu ini_set().
Keďže pri súčasných nastaveniach PHP sa mi nezobrazujú chybové hlásenia, vytvoril som si pomocnú funkciu (helper), ktorej úlohou je chybové hlásenia zobrazovať. Ide o alternatívu použitia funkcie error_reporting().
Príklad: Zobrazenie všetkých chýb v PHP cez funkciu error_reporting().
1
error_reporting(-1);
Príklad: Helper zobrazujúci chybové hlásenia.
1
2
3
4
5
function displayError($number, $description) {
echo "<b>Error:</b> [$number]: $description";
}
set_error_handler("displayError");
Pre definovanie funkcie generujúcej zobrazovanie chybových hlásení je použitá funkcia set_error_handler(). Výpis z funkcie displayError() uvádzam aj v článkoch zaoberajúcich sa chybami v PHP. Funkciu je možné rozšíriť aj o ďalšie informácie ako je názov súboru alebo číslo riadka v zdrojovom kóde, kde sa chyba vyskytla. To je vhodné pri rozsiahlejších projektoch.
Príklad: Helper zobrazujúci rozšírené chybové hlásenia.
1
2
3
4
5
6
7
function displayError($number, $description, $file, $line) {
echo "<b>Error:</b> [$number]: $description" . "<br>";
echo "<b>File:</b> [$file]" . "<br>";
echo "<b>Line:</b> [$line]" . "<br>";
}
set_error_handler("displayError");

Záver

Pri práci na väčších projektoch odporúčam používať rozšírený popis chybového hlásenia aby bolo zjavné, v ktorom súbor chyba nastala a na ktorom riadku. Pri práci s príkladmi alebo na malých projektoch stačí používať základnú funkciu displayError(). Netreba však zabúdať, že v produkcii by sa malo zobrazovanie chybových hlásení zakázať a namiesto toho používať protokolovanie do súboru, aby používateľ nezískal informácie o dôležitých súčastiach projektu (citlivé súbory, premenné a podobne).
Autor: Matej Lednár
Dátum: 8.1.2013
Kategória: PHP
Značky: programovanie, php, error, set_error_handler, error_reporting, ini_set


PHP,programovanie,PHP,error,set_error_handler,error_reporting,ini_set
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Článok neobsahuje zatiaľ žiadne komentáre.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších