AVE.CMS v3.28
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

<?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;
}
}
}
}