Autor | Zpráva | ||
---|---|---|---|
Tirus Profil |
Potřeboval bych poradit, jak si napsat error handler aby se nezapisovalo do log souboru co je nastaven v php.ini ci jinde, ale aby celé errory obsluhovala má třída. Co vše je k tomu potřeba? A jde to vůbec?
Moderátor Joker: Titulek „Error Handler“ byl moc obecný.
|
||
Joker Profil |
#2 · Zasláno: 22. 5. 2012, 13:24:00
set_error_handler, mimochodem první výsledek v Google na „php error handler“ a třetí na „error handler“ (původní titulek tohoto vlákna).
|
||
Tirus Profil |
#3 · Zasláno: 23. 5. 2012, 19:50:20
Joker:
to jsem si take nasel, ovsem kdyz to takto udelam, tak pri prvnim parse erroru mi to nezafunguje... |
||
Davex Profil |
#4 · Zasláno: 23. 5. 2012, 19:56:02
Tirus:
Parse error vznikne ještě před spuštěním skriptu, takže jí nemůžeš v tom samém skriptu ošetřit. |
||
Tirus Profil |
#5 · Zasláno: 23. 5. 2012, 19:57:54
Davex:
co tím vším tedy mohu odchytit? |
||
Davex Profil |
#6 · Zasláno: 23. 5. 2012, 21:27:53
Mělo by to být popsáno v dokumentaci - viz [#2] Joker.
|
||
Joker Profil |
#7 · Zasláno: 24. 5. 2012, 00:10:39
Tirus:
„co tím vším tedy mohu odchytit?“ Je to v té dokumentaci (resp. tam je vyjmenované, co všechno tím nejde odchytit), ale logickou úvahou set_error_handler se volá ve skriptu, takže aby chyba vůbec šla odchytit, musí: 1. skript vůbec jít spustit (což je například právě E_PARSE, kdy skript není platný PHP kód) 2. se skript dostat alespoň k tomu volání set_error_handler (takže nejdou zachytit chyby, které nastaly předtím) 3. být možné error handler zavolat (čili nejdou odchytit chyby kdy nelze pokračovat ve zpracování, jako třeba E_ERROR) Tahle úvaha víceméně stačí pro běžné situace, pro další omezení viz ta dokumentace. |
||
Jan Tvrdík Profil |
Tirus:
Parse error jde odchytit kombinací register_shutdown_function a error_get_last. Jedinou podmínkou je, že nesmí být (pochopitelně) parse error v souboru, kde ten handler registruješ. |
||
Časová prodleva: 12 let
|
0