在 php 中禁用调试模式

Disable debug mode in php

提问人:mohammadmahdi 提问时间:11/14/2023 最后编辑:mohammadmahdi 更新时间:11/14/2023 访问量:49

问:

我希望在env DEBUG为true时进行调试。我想在 DEBUG=false 时停止调试并阻止代码停止 我的代码:

<?php

namespace App\Support;

use Throwable;
use Whoops\Handler\PrettyPageHandler;
use Whoops\Run;

class Debug
{
    private bool $status;

    public function __construct()
    {
        $this->status = env('DEBUG') === 'true';
    }

    public static function load($func): void
    {
        (new Debug)->debug($func);
    }

    private function debug($func): void
    {
        try {
            echo $func();
        } catch (Throwable $e) {
            if ($this->status) {
                $this->handleException($e);
                exit();
            }
        }
    }
    private function handleException(Throwable $exception): void
    {
        $whoops = new Run;
        $whoops->pushHandler(new PrettyPageHandler);
        $whoops->handleException($exception);
    }
}

我把我的代码放在 try 中,什么也不放在 catch 中,这样当错误发生时什么都不发生

PHP 调试

评论

0赞 Chris Haas 11/14/2023
“我希望在 env DEBUG 等于 true 时进行调试......当它等于 false 时,我想调试“——我对这两个陈述感到困惑
0赞 Markus Zeller 11/14/2023
你确定在env()返回一个带有内容的字符串吗?env('DEBUG') === 'true';true
0赞 Chris Haas 11/14/2023
与其在调试处理程序中实现保护,不如将其添加到实例化的位置。if(env('DEBUG')){new Debug();}
0赞 mohammadmahdi 11/14/2023
对不起,当等于 false 时,我不希望运行调试
0赞 mohammadmahdi 11/14/2023
是的,默认情况下 DEBUG 为 true DEBUG=true

答: 暂无答案