mirror of https://github.com/avecms/AVE.cms.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
3.5 KiB
163 lines
3.5 KiB
<?php |
|
|
|
// Проверка |
|
if (! defined('BASE_DIR')) |
|
exit('Access denied'); |
|
|
|
/** |
|
* This source file is part of the AVE.cms. More information, |
|
* documentation and tutorials can be found at http://www.ave-cms.ru |
|
* |
|
* @package AVE.cms |
|
* @file system/helpers/errors.php |
|
* @author @ |
|
* @copyright 2007-2016 (c) AVE.cms |
|
* @link http://www.ave-cms.ru |
|
* @version 4.0 |
|
* @since $date$ |
|
* @license license GPL v.2 http://www.ave-cms.ru/license.txt |
|
*/ |
|
|
|
class Errors |
|
{ |
|
/** |
|
* Errors constructor. |
|
*/ |
|
public function __construct () |
|
{ |
|
set_error_handler([$this, 'scriptError']); |
|
register_shutdown_function([$this, 'shutDown']); |
|
} |
|
|
|
|
|
/** |
|
* @param $errno |
|
* @param $errstr |
|
* @param $errfile |
|
* @param $errline |
|
*/ |
|
public function scriptError ($errno, $errstr, $errfile, $errline) |
|
{ |
|
switch($errno) |
|
{ |
|
case E_ERROR: |
|
$errseverity = 'Error'; |
|
$color = '#f05050'; |
|
break; |
|
|
|
case E_WARNING: |
|
$errseverity = 'Warning'; |
|
$color = '#fad733'; |
|
break; |
|
|
|
case E_NOTICE: |
|
$errseverity = 'Notice'; |
|
$color = '#23b7e5'; |
|
break; |
|
|
|
case E_CORE_ERROR: |
|
$errseverity = 'Core Error'; |
|
$color = '#f05050'; |
|
break; |
|
|
|
case E_CORE_WARNING: |
|
$errseverity = 'Core Warning'; |
|
$color = '#fad733'; |
|
break; |
|
|
|
case E_COMPILE_ERROR: |
|
$errseverity = 'Compile Error'; |
|
$color = '#f05050'; |
|
break; |
|
|
|
case E_COMPILE_WARNING: |
|
$errseverity = 'Compile Warning'; |
|
$color = '#fad733'; |
|
break; |
|
|
|
case E_USER_ERROR: |
|
$errseverity = 'User Error'; |
|
$color = '#f05050'; |
|
break; |
|
|
|
case E_USER_WARNING: |
|
$errseverity = 'User Warning'; |
|
$color = '#fad733'; |
|
break; |
|
|
|
case E_USER_NOTICE: |
|
$errseverity = 'User Notice'; |
|
$color = '#23b7e5'; |
|
break; |
|
|
|
case E_STRICT: |
|
$errseverity = 'Strict Standards'; |
|
$color = '#edf1f2'; |
|
break; |
|
|
|
case E_PARSE: |
|
$errseverity = 'Parse Error'; |
|
$color = '#f05050'; |
|
break; |
|
|
|
case E_RECOVERABLE_ERROR: |
|
$errseverity = 'Recoverable Error'; |
|
$color = '#f05050'; |
|
break; |
|
|
|
case E_DEPRECATED: |
|
$errseverity = 'Deprecated'; |
|
$color = '#fad733'; |
|
break; |
|
|
|
case E_USER_DEPRECATED: |
|
$errseverity = 'User Deprecated'; |
|
$color = '#fad733'; |
|
break; |
|
|
|
default: |
|
$errseverity = 'Error'; |
|
$color = '#fad733'; |
|
break; |
|
} |
|
|
|
$out = '<div style="border: 1px solid ' . $color . '; margin: 10px; font-size: 11px; font-family: Consolas, Verdana, Arial; border-radius: 5px; box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2);">'; |
|
$out .= '<div style="background: ' . $color . '; color: #000; margin: 0; padding: 6px;">'; |
|
$out .= '<strong>' . $errseverity . '</strong> Line <strong>' . $errline . '</strong>: ' . $errfile; |
|
$out .= '</div>'; |
|
$out .= '<div style="background: #f0f0f0; color: #000; margin: 0; padding: 6px; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);">'; |
|
$out .= '['.$errno.'] '. $errstr; |
|
$out .= '</div>'; |
|
$out .= '</div>'; |
|
|
|
echo $out; |
|
} |
|
|
|
|
|
/** |
|
* |
|
*/ |
|
public function shutDown () |
|
{ |
|
if ($error = error_get_last()) |
|
{ |
|
if (! headers_sent()) |
|
header('HTTP/1.1 500 Internal Server Error'); |
|
|
|
switch($error['type']) |
|
{ |
|
case E_ERROR: |
|
case E_PARSE: |
|
case E_STRICT: |
|
case E_CORE_ERROR: |
|
case E_CORE_WARNING: |
|
case E_COMPILE_ERROR: |
|
case E_COMPILE_WARNING: |
|
case E_USER_ERROR: |
|
case E_RECOVERABLE_ERROR: |
|
$this->scriptError($error['type'], $error['message'], $error['file'], $error['line']); |
|
break; |
|
} |
|
} |
|
} |
|
} |