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){
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).8.1.2013 (aktualizované 17.2.2013), Matej LednárKategória: PHPPHP,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.