mirror of https://github.com/avecms/AVE.cms.git
MadD3n
4 years ago
7 changed files with 232 additions and 77 deletions
@ -0,0 +1,163 @@
|
||||
<?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; |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue