Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: Pyton, dodany: 10.04.2015 20:52, tagi: php

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.

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.