mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-04 14:22:48 +08:00
代码规范
This commit is contained in:
@@ -11,119 +11,124 @@
|
|||||||
|
|
||||||
namespace think;
|
namespace think;
|
||||||
|
|
||||||
class Error {
|
class Error
|
||||||
/**
|
{
|
||||||
* 自定义异常处理
|
/**
|
||||||
* @access public
|
* 自定义异常处理
|
||||||
* @param mixed $e 异常对象
|
* @access public
|
||||||
*/
|
* @param mixed $e 异常对象
|
||||||
public static function appException($e) {
|
*/
|
||||||
$error = [
|
public static function appException($e)
|
||||||
'message' => $e->getMessage(),
|
{
|
||||||
'file' => $e->getFile(),
|
$error = [
|
||||||
'line' => $e->getLine(),
|
'message' => $e->getMessage(),
|
||||||
'trace' => $e->getTraceAsString(),
|
'file' => $e->getFile(),
|
||||||
'code' => $e->getCode(),
|
'line' => $e->getLine(),
|
||||||
];
|
'trace' => $e->getTraceAsString(),
|
||||||
// 发送http状态信息
|
'code' => $e->getCode(),
|
||||||
Response::sendHttpStatus(Config::get('exception_http_status'));
|
];
|
||||||
// 输出异常页面
|
// 发送http状态信息
|
||||||
self::halt($error);
|
Response::sendHttpStatus(Config::get('exception_http_status'));
|
||||||
}
|
// 输出异常页面
|
||||||
|
self::halt($error);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义错误处理
|
* 自定义错误处理
|
||||||
* @access public
|
* @access public
|
||||||
* @param int $errno 错误类型
|
* @param int $errno 错误类型
|
||||||
* @param string $errstr 错误信息
|
* @param string $errstr 错误信息
|
||||||
* @param string $errfile 错误文件
|
* @param string $errfile 错误文件
|
||||||
* @param int $errline 错误行数
|
* @param int $errline 错误行数
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function appError($errno, $errstr, $errfile, $errline) {
|
public static function appError($errno, $errstr, $errfile, $errline)
|
||||||
$errorStr = "[{$errno}] {$errstr} {$errfile} 第 {$errline} 行.";
|
{
|
||||||
switch ($errno) {
|
$errorStr = "[{$errno}] {$errstr} {$errfile} 第 {$errline} 行.";
|
||||||
case E_USER_ERROR:
|
switch ($errno) {
|
||||||
self::halt($errorStr, $errno);
|
case E_USER_ERROR:
|
||||||
break;
|
self::halt($errorStr, $errno);
|
||||||
case E_STRICT:
|
break;
|
||||||
case E_USER_WARNING:
|
case E_STRICT:
|
||||||
case E_USER_NOTICE:
|
case E_USER_WARNING:
|
||||||
default:
|
case E_USER_NOTICE:
|
||||||
Log::record($errorStr, 'warn');
|
default:
|
||||||
break;
|
Log::record($errorStr, 'warn');
|
||||||
}
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 应用关闭处理
|
* 应用关闭处理
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public static function appShutdown() {
|
public static function appShutdown()
|
||||||
// 记录日志
|
{
|
||||||
Log::save();
|
// 记录日志
|
||||||
if ($e = error_get_last()) {
|
Log::save();
|
||||||
switch ($e['type']) {
|
if ($e = error_get_last()) {
|
||||||
case E_ERROR:
|
switch ($e['type']) {
|
||||||
case E_PARSE:
|
case E_ERROR:
|
||||||
case E_CORE_ERROR:
|
case E_PARSE:
|
||||||
case E_COMPILE_ERROR:
|
case E_CORE_ERROR:
|
||||||
case E_USER_ERROR:
|
case E_COMPILE_ERROR:
|
||||||
ob_end_clean();
|
case E_USER_ERROR:
|
||||||
self::halt($e);
|
ob_end_clean();
|
||||||
break;
|
self::halt($e);
|
||||||
}
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 错误输出
|
* 错误输出
|
||||||
*
|
*
|
||||||
* @param mixed $error 错误
|
* @param mixed $error 错误
|
||||||
* @param int $code
|
* @param int $code
|
||||||
*/
|
*/
|
||||||
public static function halt($error, $code = 1) {
|
public static function halt($error, $code = 1)
|
||||||
$message = is_array($error) ? $error['message'] : $error;
|
{
|
||||||
$code = is_array($error) ? $error['code'] : $code;
|
$message = is_array($error) ? $error['message'] : $error;
|
||||||
|
$code = is_array($error) ? $error['code'] : $code;
|
||||||
|
|
||||||
if (APP_DEBUG) {
|
if (APP_DEBUG) {
|
||||||
//调试模式下输出错误信息
|
//调试模式下输出错误信息
|
||||||
if (!is_array($error)) {
|
if (!is_array($error)) {
|
||||||
$trace = debug_backtrace();
|
$trace = debug_backtrace();
|
||||||
$e['message'] = $error;
|
$e['message'] = $error;
|
||||||
$e['code'] = $code;
|
$e['code'] = $code;
|
||||||
$e['file'] = $trace[0]['file'];
|
$e['file'] = $trace[0]['file'];
|
||||||
$e['line'] = $trace[0]['line'];
|
$e['line'] = $trace[0]['line'];
|
||||||
ob_start();
|
ob_start();
|
||||||
debug_print_backtrace();
|
debug_print_backtrace();
|
||||||
$e['trace'] = ob_get_clean();
|
$e['trace'] = ob_get_clean();
|
||||||
} else {
|
} else {
|
||||||
$e = $error;
|
$e = $error;
|
||||||
}
|
}
|
||||||
} elseif (!IS_API) {
|
} elseif (!IS_API) {
|
||||||
//否则定向到错误页面
|
//否则定向到错误页面
|
||||||
$error_page = Config::get('error_page');
|
$error_page = Config::get('error_page');
|
||||||
if (!empty($error_page)) {
|
if (!empty($error_page)) {
|
||||||
header('Location: ' . $error_page);
|
header('Location: ' . $error_page);
|
||||||
} else {
|
} else {
|
||||||
$e['code'] = $code;
|
$e['code'] = $code;
|
||||||
$e['message'] = Config::get('show_error_msg') ? $message : Config::get('error_message');
|
$e['message'] = Config::get('show_error_msg') ? $message : Config::get('error_message');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$e = ['message' => $message, 'code' => $code];
|
$e = ['message' => $message, 'code' => $code];
|
||||||
}
|
}
|
||||||
// 记录异常日志
|
// 记录异常日志
|
||||||
Log::write('[' . $e['code'] . '] ' . $e['message'] . '[' . $e['file'] . ' : ' . $e['line'] . ']', 'error');
|
Log::write('[' . $e['code'] . '] ' . $e['message'] . '[' . $e['file'] . ' : ' . $e['line'] . ']', 'error');
|
||||||
|
|
||||||
$type = Config::get('default_return_type');
|
$type = Config::get('default_return_type');
|
||||||
if (!IS_API && 'html' == $type) {
|
if (!IS_API && 'html' == $type) {
|
||||||
include Config::get('exception_tmpl');
|
include Config::get('exception_tmpl');
|
||||||
} else {
|
} else {
|
||||||
// 异常信息输出监听
|
// 异常信息输出监听
|
||||||
APP_HOOK && Hook::listen('error_output', $e);
|
APP_HOOK && Hook::listen('error_output', $e);
|
||||||
// 输出异常内容
|
// 输出异常内容
|
||||||
Response::send($e, $type);
|
Response::send($e, $type);
|
||||||
}
|
}
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user