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