lithium\core\ErrorHandler::run()
Register error and exception handlers.
This method (ErrorHandler::run()) needs to be called as early as possible in the bootstrap
cycle; immediately after require-ing bootstrap/libraries.php is your best bet.
Parameters
-
array
$configThe configuration with which to start the error handler. Available options include:
'trapErrors'boolean: Defaults tofalse. If set totrue, PHP errors will be caught byErrorHandlerand handled in-place. Execution will resume in the same context in which the error occurred.'convertErrors'boolean: Defaults totrue, and specifies that all PHP errors should be converted toErrorExceptions and thrown from the point where the error occurred. The exception will be caught at the first point in the stack trace inside a matchingtry/catchblock, or that has a matching error handler applied using theapply()method.
Source
public static function run(array $config = []) {
$defaults = ['trapErrors' => false, 'convertErrors' => true];
if (static::$_isRunning) {
return;
}
static::$_isRunning = true;
static::$_runOptions = $config + $defaults;
$trap = function($code, $message, $file, $line = 0, $context = null) {
$trace = debug_backtrace();
$trace = array_slice($trace, 1, count($trace));
static::handle(compact('type', 'code', 'message', 'file', 'line', 'trace', 'context'));
};
$convert = function($code, $message, $file, $line = 0, $context = null) {
throw new ErrorException($message, 500, $code, $file, $line);
};
if (static::$_runOptions['trapErrors']) {
set_error_handler($trap);
} elseif (static::$_runOptions['convertErrors']) {
set_error_handler($convert);
}
set_exception_handler(static::$_exceptionHandler);
}