【发布时间】:2016-04-28 10:32:53
【问题描述】:
这是我在堆栈溢出中的第一篇文章,所以如果我做错了什么,请通知我。
所以,我正在为客户开发一个平台,而我们在交付阶段的时间很短,因此,为了及时完成所有工作,我想更改生产中的错误报告级别。
为了实现这一点,我去了:vendor > laravel > framework > src > Illuminate > Foundation > Bootstrap > HandleExceptions.php - Line : 27 ( I think ) 并替换:
error_reporting(-1);
set_error_handler([$this, 'handleError']);
set_exception_handler([$this, 'handleException']);
register_shutdown_function([$this, 'handleShutdown']);
作者:
if(env('APP_DEBUG') == true) {
error_reporting(-1);
set_error_handler([$this, 'handleError']);
set_exception_handler([$this, 'handleException']);
register_shutdown_function([$this, 'handleShutdown']);
}else{
set_error_handler(null);
set_exception_handler(null);
}
一切都像一个魅力,但我想检查我的良好做法,并完全避免与基本代码混淆。
任何人都对我如何覆盖此错误报告有一个建议(除了在每个刀片布局上都这样做 - 我希望将代码重复降至最低)
继续提问: - 我想 set_error_handler(null);set_exception_handler(null); - 原因是:我们按时完成了一个复杂的项目(很多关系) - 我已经通过在框架本身或每个刀片页面中声明它来解决问题。但是为了保持良好的编码习惯,我不想弄乱框架,我想避免代码重复。
提前感谢您的帮助。
【问题讨论】:
-
大多数人会认为抑制错误和“保持良好的编码习惯”是相互排斥的。
-
当然,但让我们这样吧。在这一点上,我有一个平台,在 2 周内实现了几乎 500 种方法。我们和客户同意关闭错误报告,因为他明确表示必须让最小可行产品工作。所以我们保留了那部分
-
抑制错误不会将损坏的产品更改为最低限度的可行产品,它只会使其成为损坏的产品,甚至不会告诉您何时失败。可以说,情况更糟!
-
你使用的是哪个版本的 Laravel?
-
Right Nick 我无法反驳这一点,但仅仅因为我在 stackoverflow 上的声誉为零,这并不意味着我暂时不会进入这个游戏。我从事专业编码已有 9 年多的时间,还有其他一些时间,因为我非常喜欢它,我完全知道你在这一点上告诉我的一切。那就是说:客户想要向有限的观众展示这个,他想要展示平台正在运行,他们想要看到它正在运行并且屏幕显示充满错误,因为例如未定义的偏移量,这是一个主要的关闭点.
标签: php laravel error-handling