public static function HandleError($intErrorNumber, $strErrorString, $strErrorFile, $intErrorLine)
{
// If a command is called with "@", then we should return
if (error_reporting() == 0) {
return;
}
// If we still have access to QApplicationBase, set the error flag on the Application
if (class_exists('QApplicationBase')) {
QApplicationBase::$ErrorFlag = true;
}
// If we are currently dealing with reporting an error, don't go on
if (QErrorHandler::$Type) {
return;
}
// Setup the QErrorHandler Object
QErrorHandler::$Type = 'Error';
QErrorHandler::$Message = $strErrorString;
QErrorHandler::$Filename = $strErrorFile;
QErrorHandler::$LineNumber = $intErrorLine;
switch ($intErrorNumber) {
case E_ERROR:
QErrorHandler::$ObjectType = 'E_ERROR';
break;
case E_WARNING:
QErrorHandler::$ObjectType = 'E_WARNING';
break;
case E_PARSE:
QErrorHandler::$ObjectType = 'E_PARSE';
break;
case E_NOTICE:
QErrorHandler::$ObjectType = 'E_NOTICE';
break;
case E_STRICT:
QErrorHandler::$ObjectType = 'E_STRICT';
break;
case E_CORE_ERROR:
QErrorHandler::$ObjectType = 'E_CORE_ERROR';
break;
case E_CORE_WARNING:
QErrorHandler::$ObjectType = 'E_CORE_WARNING';
break;
case E_COMPILE_ERROR:
QErrorHandler::$ObjectType = 'E_COMPILE_ERROR';
break;
case E_COMPILE_WARNING:
QErrorHandler::$ObjectType = 'E_COMPILE_WARNING';
break;
case E_USER_ERROR:
QErrorHandler::$ObjectType = 'E_USER_ERROR';
break;
case E_USER_WARNING:
QErrorHandler::$ObjectType = 'E_USER_WARNING';
break;
case E_USER_NOTICE:
QErrorHandler::$ObjectType = 'E_USER_NOTICE';
break;
case E_DEPRECATED:
QErrorHandler::$ObjectType = 'E_DEPRECATED';
break;
case E_USER_DEPRECATED:
QErrorHandler::$ObjectType = 'E_USER_DEPRECATED';
break;
case E_RECOVERABLE_ERROR:
QErrorHandler::$ObjectType = 'E_RECOVERABLE_ERROR';
break;
default:
QErrorHandler::$ObjectType = 'Unknown';
break;
}
// Setup the Stack Trace
QErrorHandler::$StackTrace = "";
$objBackTrace = debug_backtrace();
for ($intIndex = 0; $intIndex < count($objBackTrace); $intIndex++) {
$objItem = $objBackTrace[$intIndex];
$strKeyFile = array_key_exists('file', $objItem) ? $objItem['file'] : '';
$strKeyLine = array_key_exists('line', $objItem) ? $objItem['line'] : '';
$strKeyClass = array_key_exists('class', $objItem) ? $objItem['class'] : '';
$strKeyType = array_key_exists('type', $objItem) ? $objItem['type'] : '';
$strKeyFunction = array_key_exists('function', $objItem) ? $objItem['function'] : '';
QErrorHandler::$StackTrace .= sprintf("#%s %s(%s): %s%s%s()\n", $intIndex, $strKeyFile, $strKeyLine, $strKeyClass, $strKeyType, $strKeyFunction);
}
QErrorHandler::Run();
}