×
Creating solutions

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
No part of this article may be reproduced without mention of the author and URL to this website.
For more information, see the About section.

Comments

Article has no comments.

Add a comment

Name (required)
Website
Message (required)
Submit
From latest