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.