为什么php仍然报告错误?

问题描述 投票:1回答:1

在simplesamlPHP库中有代码

Logger::maskErrors(E_ALL);
$hidden = in_array(
    self::$HIDE_FROM_DISCOVERY, 
    $metadata['EntityAttributes'][self::$ENTITY_CATEGORY], 
    true
);
Logger::popErrorMask();

因此,他们决定将错误报告设置为0,而不是使用isset($metadata['EntityAttributes'][self::$ENTITY_CATEGORY]),然后将其还原。问题是,当我将其作为脚本运行时,它可以工作,但是当我将其插入框架时,它仍然会因错误而失败。尽管我在那里放了关卡,但它确实设置为0。

另外,我听说如果您设置了用户定义的错误处理程序函数,那么error_reporting()设置将被完全忽略。但是全局搜索在项目中不返回set_error_handler。

php error-handling error-reporting simplesamlphp
1个回答
0
投票

仍然是set_error_handler(),我没有正确查看供应商文件夹。它在Laravel中起作用的原因:

 public function handleError($level, $message, $file = '', $line = 0, $context = [])
    {
        if (error_reporting() & $level) {
            throw new ErrorException($message, 0, $level, $file, $line);
        }
    }

但是我的框架有这个:

    public function handleError($code, $message, $filename = '', $line = 0)
    {
        throw new \ErrorException($message, $code, 0, $filename, $line);
    }
© www.soinside.com 2019 - 2024. All rights reserved.