gpt4 book ai didi

PHP:register_shutdown_function 并不总是适用于 Symfony 2

转载 作者:行者123 更新时间:2023-12-03 08:35:27 25 4
gpt4 key购买 nike

我正在尝试使用 register_shutdown_function 来“捕获”PHP fatal error ,以便我可以返回一个干净的错误消息。

在一个简单的 PHP 文件中,以下两个测试用例都得到了正确处理,并返回了我的自定义 500 错误。

register_shutdown_function('handleShutdown');

//Test Case #1
$nullVar = null;
$nullVar->test();

//Test case #2
$uninitialisedVar->test();


function handleShutdown()
{
$error = error_get_last();
if ($error !== NULL)
{
ob_clean();
header('HTTP/1.0 500 Internal Server Error');
echo 'Something bad happened';
}
}

然而,当在 Controller 内部的 Symfony 2 操作中使用相同的机制时,不再处理测试用例 #2:我的处理程序仅在变量之前已初始化时才被调用。但是,在这两种情况下,我们都在处理同一种 fatal error (调用非对象的成员方法)。

有人可以帮忙吗?

最佳答案

在 Debug模式下 Symfony2 调用 set_error_handler这可能与 register_shutdown_function 冲突.在生产模式下不会发生。

关于PHP:register_shutdown_function 并不总是适用于 Symfony 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10427692/

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