[7618] | 1 | <?
|
---|
| 2 | /*
|
---|
| 3 | * Project: NodeMap2.0
|
---|
| 4 | * File: ErrorHandler.class.php
|
---|
| 5 | * Purpose: Handling (PHP) errors generated by the application
|
---|
| 6 | */
|
---|
| 7 |
|
---|
| 8 | /*
|
---|
| 9 | * PHP errors:
|
---|
[7637] | 10 | * E_ERROR ( integer ) Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted.
|
---|
| 11 | * E_WARNING ( integer ) Run-time warnings (non-fatal errors). Execution of the script is not halted.
|
---|
| 12 | * E_PARSE ( integer ) Compile-time parse errors. Parse errors should only be generated by the parser.
|
---|
| 13 | * E_NOTICE ( integer ) Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script.
|
---|
[7618] | 14 | * E_CORE_ERROR ( integer ) Fatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP. since PHP 4
|
---|
| 15 | * E_CORE_WARNING ( integer ) Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP. since PHP 4
|
---|
| 16 | * E_COMPILE_ERROR ( integer ) Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine. since PHP 4
|
---|
| 17 | * E_COMPILE_WARNING ( integer ) Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine. since PHP 4
|
---|
| 18 | * E_USER_ERROR ( integer ) User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 4
|
---|
| 19 | * E_USER_WARNING ( integer ) User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 4
|
---|
| 20 | * E_USER_NOTICE ( integer ) User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 4
|
---|
| 21 | * E_STRICT ( integer ) Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. since PHP 5
|
---|
| 22 | * E_RECOVERABLE_ERROR ( integer ) Catchable fatal error. It indicates that a probably dangerous error occured, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR. since PHP 5.2.0
|
---|
| 23 | * E_ALL ( integer ) All errors and warnings, as supported, except of level E_STRICT in PHP < 6.
|
---|
| 24 | */
|
---|
| 25 |
|
---|
[7631] | 26 | /*
|
---|
[7637] | 27 | * Function: NodeErrorHandler
|
---|
[7631] | 28 | * Parameters: int $errno, string $errstr, string $errfile, int $errline, array $errcontext
|
---|
[7637] | 29 | * Function: Handling with errors, decides what log level it is and send it to LogHandler
|
---|
[7631] | 30 | */
|
---|
[7637] | 31 | function NodeErrorHandler(int $errno, string $errstr, string $errfile, int $errline, array $errcontext) {
|
---|
[7631] | 32 | switch ($errno) {
|
---|
| 33 | case E_ERROR:
|
---|
[7637] | 34 | trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
|
---|
| 35 | break;
|
---|
| 36 | case E_WARNING:
|
---|
| 37 | trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
|
---|
| 38 | break;
|
---|
| 39 | case E_PARSE:
|
---|
| 40 | trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
|
---|
| 41 | break;
|
---|
| 42 | case E_NOTICE:
|
---|
| 43 | trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
|
---|
| 44 | break;
|
---|
[7631] | 45 | case E_CORE_ERROR:
|
---|
[7637] | 46 | trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
|
---|
| 47 | break;
|
---|
[7631] | 48 | case E_CORE_WARNING:
|
---|
[7637] | 49 | trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
|
---|
| 50 | break;
|
---|
[7631] | 51 | case E_COMPILE_ERROR:
|
---|
[7637] | 52 | trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
|
---|
| 53 | break;
|
---|
[7631] | 54 | case E_COMPILE_WARNING:
|
---|
[7637] | 55 | trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
|
---|
| 56 | break;
|
---|
[7631] | 57 | case E_USER_ERROR:
|
---|
[7637] | 58 | trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
|
---|
| 59 | break;
|
---|
[7631] | 60 | case E_USER_WARNING:
|
---|
[7637] | 61 | trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
|
---|
| 62 | break;
|
---|
[7631] | 63 | case E_USER_NOTICE:
|
---|
[7637] | 64 | trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
|
---|
| 65 | break;
|
---|
[7631] | 66 | case E_STRICT:
|
---|
[7637] | 67 | trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
|
---|
| 68 | break;
|
---|
[7631] | 69 | case E_RECOVERABLE_ERROR:
|
---|
[7637] | 70 | trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
|
---|
| 71 | break;
|
---|
[7631] | 72 | default:
|
---|
[7637] | 73 | trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
|
---|
| 74 | break;
|
---|
[7631] | 75 | }
|
---|
[7618] | 76 |
|
---|
[7631] | 77 | /* Don't execute PHP internal error handler */
|
---|
| 78 | return true;
|
---|
[7621] | 79 | }
|
---|
| 80 |
|
---|
[7637] | 81 | set_exception_handler('NodeErrorHandler');
|
---|