\n EOF; $data .= sprintf("

Error: %s

%s, line %d

\n", $errstr, $errfile, $errline); $data .= sprintf("
Date:
%s
Remote address:
%s
Path:
%s

Trace

%s

\$_SERVER

%s

\$_REQUEST

%s
\n", gmdate('r'), array_key_exists('REMOTE_ADDR', $_SERVER) ? $_SERVER['REMOTE_ADDR'] : '???', array_key_exists('REQUEST_PATH', $_SERVER) ? $_SERVER['REQUEST_PATH'] : '???', print_r($trace, true), print_r($_SERVER, true), print_r($_REQUEST, true)); $data .= << EOF; $env = defined('ENVIRONMENT') ? ' '.ENVIRONMENT : ''; @mail($mail_to, '[DXO'.$env.'] Error: '.$errstr, $data, 'From: <' . $mail_from . '>' . "\n" . 'Content-Type: text/html; charset=iso-8859-1' . "\n"); } function custom_exception_handler($e) { $msg = $e->getMessage(); $msg = empty($msg) ? 'Exception '.get_class($e) : $msg; mail_error(ERROR_RECIPIENT, ERROR_SENDER, $msg, $e->getFile(), $e->getLine(), $e->getTrace()); } function error_handler_exception_callback($errno, $errstr, $errfile='Unknown', $errline=0, $errcontext=null) { // @-ignored error if (($errno & error_reporting()) === 0) { return; } // NOTICE if ($errno == E_NOTICE || $errno == E_USER_NOTICE) { return; } // STRICT if ($errno == E_STRICT) { return; } $e = new DXOException($errstr, $errno); $e->setErrorFile($errfile); $e->setErrorLine($errline); throw $e; } set_exception_handler('custom_exception_handler'); set_error_handler('error_handler_exception_callback'); ?>