gpt4 book ai didi

php - 在 Laravel 生产中完全禁用错误报告?

转载 作者:行者123 更新时间:2023-12-02 22:24:35 25 4
gpt4 key购买 nike

我想在生产中完全禁用错误报告,因为我们有一些非常旧的代码仍然需要修复,但目前确实有效(是的,我也不喜欢它)。我们无法在几天内解决所有问题,因此我们需要像往常一样抑制警告和异常。

真正的问题是它已经在一个简单的惰性错误上抛出异常(因为 var 没有定义)

if(!$var) {
// do whatever
}

尝试过

APP_DEBUG=false

APP_LOG_LEVEL=emergency

display_errors(false);
set_error_handler(null);
set_exception_handler(null);

但它仍然显示 ErrorException

Undefined variable: script_name_vars_def

编辑:代码的工作原理如下

web.php

Route::any('/someroute', 'somecontroller@controllerFunc');

somecontroller.php

public controllerFunc() {
ob_start();
require '/old_index.php';
$html = ob_get_clean();

return response($html);
}

这样我们就可以使用 Laravel 路由,而不必立即重写旧代码。

我知道我可以很容易地修复这个警告,但是还有很多很多这样的错误,我们现在需要使用 Laravel 路由。稍后修复问题。

想法

编辑以解释中间件在哪些步骤之后不起作用

1) 创建中间件

php artisan make:middleware SuppressExceptions

2)写下来

SuppressExceptions.php

public function handle($request, Closure $next)
{
error_reporting(0);
return $next($request);
}

3) 注册

laravel/app/Http/Kernel.php

protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\SuppressExceptions::class,
],

最佳答案

Laravel 调试设置位于 .env 文件中,您可以在其中设置调试选项,如下所示:

APP_DEBUG = true

但是...

Laravel 还有配置机制,位于 config 文件夹中的 app.php 中,默认为:

'debug' => env('APP_DEBUG', false),

它告诉 Laravel 使用 .env 值,默认为 false,但任何有权访问该文件的人都可以简单地将其更改为:

'debug' => true,

这样你的 .env 值就会被 Laravel 忽略。

关于php - 在 Laravel 生产中完全禁用错误报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44806474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com