Napiši svoj PHP error handler (obdelovalec napak:P)
Pri vsaki aplikaciji (spletni strani) se pojavljajo napake. Seveda se trudimo, da iz rok damo izdelek, ki je dobro pretestiran in za katerega vemo (upamo), da je bug-free. Žal meni (nam) ne uspe narediti popolnoma bug-free aplikacije (spletne strani) in zato je zelo dobro imeti svoj error handler, ki nam vse napake, ki se zgodijo na spletni strani zapiše v podatkovno bazo. Tako lahko na vsake toliko časa pogledamo do kakšnih (nepričakovanih) napak prihaja in dodamo popravek ter tako naredimo korak naprej k bug-free spletni strani.
PHP omogoča, da spišemo svoj error handler, ki ga PHP pokliče, ko pride do napake. Poglejmo primer kode, ki skrbi za obdelavo napak:
-
function myErrorHandler($errno, $errstr, $errfile, $errline){
-
'error' => $errstr,
-
'line' => $errline,
-
'file' => $errfile,
-
'number' => $errno,
-
'version' => PHP_VERSION,
-
'os' => PHP_OS,
-
'browser' => $_SERVER["HTTP_USER_AGENT"],
-
'url' => 'http://' . $_SERVER['SERVER_NAME'] . ((isset($_SERVER['REQUEST_URI'])) ? $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_NAME']));
-
-
$data = my_http_build_query($parameters);
-
-
'method' => 'POST',
-
'content'=> $data,
-
'header' => "Content-type: application/x-www-form-urlencoded\r\n"
-
));
-
-
-
else $fp = false;
-
-
if (!$fp and DEBUG) {
-
return false;
-
}elseif (!$fp){
-
return true;
-
}
-
-
}
-
-
-
return true;
-
}
-
-
/* Execute PHP internal error handler on DEBUG */
-
if (DEBUG){
-
return false;
-
}
-
-
return true;
-
}
Zberemo standardne podatke in še nekaj dodatnih (poljubnih) (verzijo PHP-ja, ime brskalnika, sistem na katerem teče PHP), kreiramo POST zahtevek in preverimo, če je naša stran na katero želimo poslati napake sploh obstaja (da ne bi prihajalo do napak znotraj error handlerja). Če želimo, da napako prevzame (obdela) tudi privzeti PHP error handler vrnemo false, drugače pa true. Konstante, ki so uporabljene pri zgoraj napisani kodi:
Svoj error handler pri PHP registriramo z sledečo kodo:
Koda, ki skrbi za sprejemanje podatkov pa je poljubna glede na vaše potrebe. Primer lahko najdete spodaj pod datotekami.
Več informacij:
- Vse o PHP error handling-u
- PHP funkcija za backtrace
- Postopek (korak za korakom) kako kreirati svoj PHP error handler
- Error Handling in PHP: Coding Defensively
Datoteke:
- Error handler (v .inc formatu)
- Skripta na katero pošljemo napake
- SQL, ki kreira error tabelo, ki je uporabljena pri skripti za sprejemanje napak
Zgoraj napisano kodo lahko hitro spremenimo tako, da na vse aplikacije, ki jih mi razvijamo, dodamo isti error handler, ki sporoča napake na eno centralno lokacijo s katere lahko preprosto pregledujemo napake za vse strani, ki smo jih naredili oz. jih imamo (moramo) imeti pod nadzorom.
Podobni članki:
- Poljubno 404 sporočilo – Custom 404 error not found message
- PHP funkcije v Javascript jeziku – isset
- Avtomatska preusmeritev pri uporabniku prijaznem sporočilu o napaki
- Javascript – input text – le številke – validacija
- Izpis vseh defeniranih spremenljivk v PHP-ju
- Rezanje teksta po koncu besede – php funkcija – substr – cut text – UTF-8
- AJAX na enostaven način
- PHP – izpis podatkov – dump – razhroščevanje – debugiranje
- Izdelal svoj prvi kalup
- PHP – Virtualne pod-domene – virtual subdomains



April 5th, 2008 ob 6:45 pm
[...] ... način izpisa. Vsekakor je manj dela s php tagi. Zaradi bolj pregledne kode je vzdrževanje krajše in hitrejše. Tudi ponovna uporaba za prezentacijo je lažja. Dodatna prednost je tudi, da se oblikovalca lahko loči od logike sistema. Smarty ima za vse napake svoje error handler (o katerem smo že pisali na blogu), ki so bolj prijazn.... [...]