PHP Parser Error Handler

Łukasz Piotrowski Komentarzy 0

    Wiele ludzi żyje w przekonaniu że Parser Error nie da się złapać. Bo niby jak? Oto bardzo prosty przepis.

    Tworzymy plik np. globalErrorHandler.php a w nim:

    register_shutdown_function("shutdownHandler");
    function shutdownHandler()
    {
        $lasterror = error_get_last();
        switch ($lasterror['type'])
        {
            case E_ERROR:
            case E_CORE_ERROR:
            case E_COMPILE_ERROR:
            case E_USER_ERROR:
            case E_RECOVERABLE_ERROR:
            case E_CORE_WARNING:
            case E_COMPILE_WARNING:
            case E_PARSE:
                $error = "[SHUTDOWN] lvl:" . $lasterror['type'] . " | msg:" . $lasterror['message'] . " | file:" . $lasterror['file'] . " | ln:" . $lasterror['line'];
                die($error);
        }
    }

    Obsługę błędów możemy oczywiście dowolnie modyfikować, włącznie z wysłaniem maila do siebie.

    Aby to zadziałało dodajemy do php.ini do zmiennej auto_prepend_fileścieżkę bezwzględną do naszego pliku.
    Jeśli nie mamy dostępu bezpośrednio/pośrednio do php.ini to możemy włączyć to w .htaccess podając
    php_value auto_prepend_file "adres/do/pliku.php

    Koniec. Od teraz mamy obsługę błedów m.in. Parser Error.


    Top