您现在的位置是:首页 > PHP框架交流PHP框架交流
thinkphp异常处理 修改thinkphp默认报错样式
上善若水2022-12-08 17:39:13【PHP框架交流】
2058人已围观
简介用的现成的框架,报错太不友好了,就一个提示massage,通过调试找到报错位置还原官方报错页面,如果你也是shipXO直接过来产考方法修改.env开启debug [APP] THINK_ENV=
用的现成的框架,报错太不友好了,就一个提示massage,通过调试找到报错位置还原官方报错页面,如果你也是shipXO直接过来产考
方法修改.env 开启debug
[APP]
THINK_ENV = dev
DEBUG = true
过程
1.异常会进入app/ExceptionHandle.php
进行处理
2.查看渲染模板的位置
protected function renderExceptionContent(Throwable $exception): string
{
ob_start();
$data = $this->convertExceptionToArray($exception);
extract($data);
include $this->app->config->get('app.exception_tmpl') ?: __DIR__ . '/../../tpl/think_exception.tpl';
return ob_get_clean();
}
3.去config/app.php
定位到渲染页面
return [
// 应用地址
'app_host' => '',
// 应用的命名空间
'app_namespace' => '',
// 是否启用路由
'with_route' => true,
// 默认应用
'default_app' => 'index',
// 默认时区
'default_timezone' => MyFileConfig('common_timezone', '', 'Asia/Shanghai', true),
// 应用映射(自动多应用模式有效)
'app_map' => [],
// 域名绑定(自动多应用模式有效)
'domain_bind' => [],
// 禁止URL访问的应用列表(自动多应用模式有效)
'deny_app_list' => [],
// 异常页面的模板文件
'exception_tmpl' => APP_PATH . 'tpl/think_exception.tpl',
// 错误显示信息,非调试模式有效
'error_message' => '系统出现错误、请联系管理员',
// 显示错误信息
'show_error_msg' => true,
];
找到位置,用官方模板覆盖
4.修改后发现依旧不显示,显示十年磨一剑-为API开发设计的高性能框架
看到下方\think\facade\App::isDebug()才显示详情。
5.找到这个参数怎么设置的。
/**
* 调试模式设置
* @access protected
* @return void
*/
protected function debugModeInit(): void
{
// 应用调试模式
if (!$this->appDebug) {
$this->appDebug = $this->env->get('app_debug') ? true : false;
ini_set('display_errors', 'Off');
}
if (!$this->runningInConsole()) {
//重新申请一块比较大的buffer
if (ob_get_level() > 0) {
$output = ob_get_clean();
}
ob_start();
if (!empty($output)) {
echo $output;
}
}
}
6.定位到这个参数是env
配置的,修改配置。DEBUG = true
7.这样报错就友好的,实际只需操作第六部就行,逗了一个大圈,解决就行。
很赞哦! (0)
相关文章
随机图文
shiro1.7 使用springboot 登录 笔记
目前在权限这块shiro和Spring Security是比较热门的两个框架,本篇主要使用shiro实现基本的登录功能,供大家学习使用. 1.引入pom依赖在maven仓库中查找shiro-sprin62个哄女孩开心的笑话,只为博她一笑
1.一天,牛给驴出了一个难题,问“蠢”字下面两只虫子哪只是公的,哪只是母的。驴绞尽脑汁,还是答不上来。牛骂道:真是头蠢驴,男左女右嘛!2.毕业后七年,总算接了个大工程,造一根三十米烟囱,工期两个月,造价三十万,不过要垫资。总算在去年年底搞完了。今天人家去验收,被人骂得要死,还没有钱拿。妈的!图纸看反了,人家是要挖一口井!3.一醉汉不慎从三楼掉下,引来路人围观,一警察过来:发生什么事?醉汉php技术提升心得与方法
现在的PHP市场虽然充斥了大量的的PHP开发人员,但这些人当中真正能称得上高手的却寥寥无几。很多公司虽然招聘了一些PHP开发人员,但是由于技术水平不高,导致公司的项目一直堆积。这不仅另公司无奈也让已经入职的PHP开发人员着急,他们也想要在PHP领域更近一步,但却苦于找不到提高自己的方法,下面我们的鸥仔收集了一些PHP大神的一些工作方式、习惯,让大家看看PHP大神们是如何工作,也希望这些方法能帮助到那些想要在PHP领域更近一步的人。PHP8.2新特性 析取范式 (DNF)类型 允许 null、false 和 true 作为独立类型 Traits 中的常量
PHP8.2新特性析取范式(DNF)类型,DNF类型允许我们组合union和intersection类型,遵循一个严格规则:组合并集和交集类型时,交集类型必须用括号进行分组。1.析取范式