处理用PHP编写的公共JSON API中的错误的最佳方法?

时间:2012-01-11 20:34:31

标签: php json

我正在为我的网站提供一个由PHP提供支持的公共API。然而,我真的在努力处理失败。由于其他人希望使用正确的JSON,因此发送原始PHP错误或现有JSON并将错误添加到最终将无效。

我的第一次尝试

//The absolute first thing: get a shutdown hook and force all errors to go through it
error_reporting(0);
register_shutdown_function('handleShutdown');
function handleShutdown() {
    $error = error_get_last();
    if($error !== NULL)
        die(strip_tags(json_encode(array("phpError" => $error))));
}

现在您可以看到我正在使用关闭函数而不是set_error_handler,因为某些失败不会被错误处理程序捕获。然而,随机错误(我没有一个确切的列表)仍然可以做到这一点,或者不被抓住或只是被添加到最后。

其他一个复杂问题是,我不能只打开输出缓冲并在错误上清除所有内容并只打印错误。这是因为某些方法会返回大量数据,并且使用输出缓冲会导致服务器出现任何负载。

还有什么我可以尝试将PHP错误包装在一个漂亮的JSON格式的字符串中吗?

1 个答案:

答案 0 :(得分:2)

任何使用您的API 的人都应该关注随响应发送的HTTP状态代码。只要您正确报告HTTP状态代码,响应正文就是帮助消费者了解 出错的其他信息。