改进Handle类支持异常的多语言 Lang类增加has方法 增加核心中文语言包

This commit is contained in:
thinkphp
2016-06-16 16:07:44 +08:00
parent d8fc0bf7aa
commit 50d1798e92
35 changed files with 151 additions and 59 deletions

View File

@@ -16,6 +16,7 @@ use think\App;
use think\Config;
use think\Console;
use think\console\Output;
use think\Lang;
use think\Log;
use think\Response;
@@ -40,14 +41,14 @@ class Handle
$data = [
'file' => $exception->getFile(),
'line' => $exception->getLine(),
'message' => $exception->getMessage(),
'message' => $this->getMessage($exception),
'code' => $this->getCode($exception),
];
$log = "[{$data['code']}]{$data['message']}[{$data['file']}:{$data['line']}]";
} else {
$data = [
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
'code' => $this->getCode($exception),
'message' => $this->getMessage($exception),
];
$log = "[{$data['code']}]{$data['message']}";
}
@@ -121,7 +122,7 @@ class Handle
'name' => get_class($exception),
'file' => $exception->getFile(),
'line' => $exception->getLine(),
'message' => $exception->getMessage(),
'message' => $this->getMessage($exception),
'trace' => $exception->getTrace(),
'code' => $this->getCode($exception),
'source' => $this->getSourceCode($exception),
@@ -140,8 +141,8 @@ class Handle
} else {
// 部署模式仅显示 Code 和 Message
$data = [
'code' => $exception->getCode(),
'message' => $exception->getMessage(),
'code' => $this->getCode($exception),
'message' => $this->getMessage($exception),
];
if (!Config::get('show_error_msg')) {
@@ -189,6 +190,28 @@ class Handle
return $code;
}
/**
* 获取错误信息
* ErrorException则使用错误级别作为错误编码
* @param \Exception $exception
* @return string 错误信息
*/
protected function getMessage(Exception $exception)
{
$message = $exception->getMessage();
if (IS_CLI) {
return $message;
}
// 导入语言包
Lang::load(THINK_PATH . 'lang' . DS . Lang::detect() . EXT);
if (strpos($message,':')) {
$name = strstr($message, ':', true);
return Lang::has($name) ? Lang::get($name) . ' ' . strstr($message, ':') : $message;
} else {
return Lang::has($message) ? Lang::get($message) : $message;
}
}
/**
* 获取出错文件内容
* 获取错误的前9行和后9行