In meinem Projekt alle PHP-Fehler abzufangen ich gesetzt habe meine Fehlerbehandlung Mechanismus wie folgt zusammen:Fehler in codeigniter Umgang
- I
error_reporting()
inindex.php
Datei festgelegt haben, die alles in derphp.ini
Datei überschreibt - ein Fehler-Handler in
system/codeigniter/CodeIgniter.php
gesetzt mitset_error_handler
- diesen Fehler-Handler,_exception_handler
ist insystem/codeigniter/Common.php
- gefunden Die
_exception_handler
Funktion ignoriertE_STRICT
Fehler, ruft dieshow_php_error
Funktion Von der Ausnahmen Systembibliothek, wenn die Schwere dass durch Ihreerror_reporting()
Funktion inindex.php
angegeben wird und protokolliert den Fehler nach, was Sie haben in Ihrerconfig.php
Datei - Der Handler einrichten returns
FALSE
so nach diesem PHP geht weiter, um den Fehler zu behandeln, aber es würde normalerweiseerror_reporting
Ebene unddisplay_errors
Einstellung.
Die Sache, die mich ist rätselhaft ist, dass E_ERROR
Fehler d fatale Fehler scheinen nicht gar von _exception_handler
gefangen werden wird. Es ist nicht nur, dass show_php_error
nicht aufgerufen wird, es sieht so aus, als ob die Funktion gerade nicht für sie aufgerufen wird. Dies ist offensichtlich ein Problem, da es bedeutet, dass sie nicht von show_php_error
behandelt oder protokolliert werden. Zum Beispiel, wenn ich absichtlich vertippt $this->load->views('foo');
in einem Controller, wird der Handler nicht aufgerufen.
Jeder Vorschlag über Fehlerbehandlung würde sehr geschätzt werden, danke!
Ich denke, dass es ein Problem mit PHP selbst sein kann, ohne es zu testen. Wenn Sie http://www.php.net/manual/en/function.error-reporting sehen.php # 70126 Sie werden sehen, dass in diesem Fall ein E_ERROR einen ähnlichen Effekt wie E_PARSE verursacht. – David
Welche Umgebung verwenden Sie? – bottleboot