PHP Errors – Best Practices

12. Mai 2010 Besucher gesamt: 1282

In unseren Programmierer-Alltag passieren immer wieder Fehler. Klassische Fehler sind: man schreibt eine Variable falsch, oder man verwendet eine Variable die zuvor noch nicht deklariert wurde. Hier stelle ich euch paar nützliche Anpassungen für die php.ini für die Entwicklungsphase und für den Echtbetrieb.

Entwicklungsphase
Währen der Entwicklung- und Testphase sollten alle Fehler angezeigt werden:

error_reporting = E_ALL | E_STRICT
display_errors = on

Alle Fehler und Warnungen die unterstützt werden, werden auch angezeigt. Zusätzlich bekommen wir noch Benachrichtigungen des Laufzeitsystems. Damit erhalten wir PHP Vorschläge über Änderungen des Programmcodes, die eine bestmögliche Interoperabilität und zukünftige Kompatibilität unseren Codes gewährleisten.

Echtbetrieb
Im Produktionsumfeld sollten nur die wichtigsten Fehler aktiviert werden:

error_reporting = E_ALL & ~E_NOTICE
display_errors = off

Hiermit erhalten wir Benachrichtigungen während der Laufzeit. Sie zeigen an, dass im Skript irgend etwas gefunden wurde, was einen Fehler verursachen könnte. Es ist aber genauso möglich, dass Benachrichtigungen im ordnungsgemäßen Ablauf eines Skripts ausgegeben werden.

Im Notfall (ist jedoch nicht die beste Lösung) kann das Error-Reporting mit der Methode error_reporting() und mit der ini_set(‚display_errors‘, value); aktiviert bzw. benutzt werden.

Die PHP Fehler, können jedoch in einen eigenen error_handler abgefangen werden und als eine Exception weiter verarbeitet werden.

/**
* PHP error handler, converts all errors into ErrorExceptions. This handler
* respects error_reporting settings.
*
* @throws ErrorException
* @return TRUE
*/
function my_error_handler($code, $error, $file = NULL, $line = NULL)
{
    if (error_reporting() & $code)
    {
        // This error is not suppressed by current error reporting settings
        // Convert the error into an ErrorException
        throw new ErrorException($error, $code, 0, $file, $line);
    }
    // Do not execute the PHP error handler
    return TRUE;
}

set_error_handler("my_error_handler");

Mit der tray und catch Anweisung können wir nun unseren Code nach normalem und unnormalem Verhalten trennen. Wir haben also php-error-triggers in Exceptions umgeleitet, und da sowieso schon ein sehr großer Teil der Programmierung sich dem Abfangen von Fehlern widmet, können wir nun mit unsere neuen Lösungsansatz die Übersicht der Fehlerbehandlung verbessern und kontrollieren.

¬ geschrieben von gjerokrsteski in PHP Tricks und Tipps  ¬ Erzähl´s weiter Twitter  | Mr. Wong  | Delicious  | Del.icio.us  | Google  | Facebook

«

» 

Ein Kommentar zu 'PHP Errors – Best Practices'

  1. […] Dieser Eintrag wurde auf Twitter von Gjero Krsteski erwähnt. Gjero Krsteski sagte: PHP Errors – Best Practices – http://krsteski.de/php-tricks-und-tipps/php-errors-best-practices.html […]

Hinterlasse einen Kommentar

*Codebeispiele können im CODE-Tag angegeben werden.

Powered by Wordpress • Abonniere den RSS Feed