我想完全禁止生产错误报告,因为我们有一些非常旧的代码,我们仍然需要修复,但现在确实有效(是的我也不喜欢它).我们无法在几天内修复所有内容,因此我们需要像往常一样压制警告和异常.
真正的问题是它已经在一个简单的懒惰的bug上引发异常(因为没有定义var)
if(!$var) {
// do whatever
}
Run Code Online (Sandbox Code Playgroud)
试着
APP_DEBUG = FALSE
APP_LOG_LEVEL =紧急
display_errors(false);
set_error_handler(null);
set_exception_handler(null);
Run Code Online (Sandbox Code Playgroud)
但它仍然显示出一个 ErrorException
未定义的变量:script_name_vars_def
编辑:代码的工作原理如下
web.php
Route::any('/someroute', 'somecontroller@controllerFunc');
Run Code Online (Sandbox Code Playgroud)
somecontroller.php
public controllerFunc() {
ob_start();
require '/old_index.php';
$html = ob_get_clean();
return response($html);
}
Run Code Online (Sandbox Code Playgroud)
这样我们就可以使用Laravel路由,而无需立即重写旧代码.
我知道我可以很容易地修复这个警告,但是这些错误还有很多,我们现在需要使用Laravel路由.稍后解决问题.
思路
$dontReport.@在正确的地方使用抑制编辑解释中间件无法正常工作的步骤
1)创建midddleware
php artisan make:middleware SuppressExceptions
Run Code Online (Sandbox Code Playgroud)
2)写下来
SuppressExceptions.php
public function handle($request, Closure $next)
{
error_reporting(0);
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
3)注册
laravel /应用/ HTTP/Kernel.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\SuppressExceptions::class,
],
Run Code Online (Sandbox Code Playgroud) 我有一个 Laravel 5.2 应用程序,它在无法连接到数据库(包括数据库的 IP 和用户名/密码)时显示典型的“糟糕,出了点问题”PDO 错误。
在我的 app.php 文件中,我有:
'debug' => false,
Run Code Online (Sandbox Code Playgroud)
我还尝试清除服务器上的缓存以查看它是否仍然停留在调试中,但这并没有做任何事情。
任何有关如何阻止这种情况的帮助将不胜感激。
我想禁用Laravel的错误屏幕,显示错误/异常以及调试信息和函数跟踪.主要是因为我使用Laravel作为移动API后端,并且这些响应在移动设备上难以阅读.
请注意我想要的错误,但不是错误的错误页面.
有什么建议?
我遵循的是testdrivenlaravel课程,它提到了一种禁用Laravel异常处理的方法,以防止Laravel处理发生的异常并抛出该异常,因此我们可以在测试输出中得到更详细的错误。
所以我在测试用例类中添加了此方法,然后在render方法中抛出了异常
protected function disableExceptionHandling() {
$this->app->instance(Handler::class, new class extends Handler {
public function __construct()
{
}
public function report(\Exception $e)
{
}
public function render($request, \Exception $e)
{
throw $e;
}
});
}
Run Code Online (Sandbox Code Playgroud)
但是,每当我在测试中调用它时,为了获得更详细的错误,我仍然会得到与Laravel Handler呈现的错误相同的错误。
当我Handler像这样直接更改类时:
public function render($request, Exception $exception)
{
throw $exception;
// return parent::render($request, $exception);
}
Run Code Online (Sandbox Code Playgroud)
我得到了详细的错误,但是我需要完成disableExceptionHandling助手的工作。
laravel ×4
php ×3
laravel-4 ×1
laravel-5 ×1
laravel-5.2 ×1
laravel-5.3 ×1
laravel-5.4 ×1
pdo ×1
tdd ×1