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
4 years ago
|
<?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;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|