我有一个库,直到有人在 GitHub 上创建了一个问题,我才注意到它发出了弃用警告。我已启用:
error_reporting(E_ALL);
并修复了所有弃用警告。但问题是:如果有弃用警告,您能否使代码始终失败(我考虑单元测试)?我正在考虑使用正则表达式添加
ob_
缓冲来测试是否没有警告并抛出错误。但这需要一些看起来不太漂亮的代码。
是否有一种简单的方法来切换某些选项以使警告成为真正的错误?那么单元测试没有通过并且代码总是失败?我希望我的代码能够面向未来,并且当 PHP 决定用真正的错误替换弃用时不会失败。
是的,您可以使用 set_error_handler 函数让 PHP 将所有错误(包括 E_DEPRECATED 和 E_USER_DEPRECATED)视为异常。此函数允许您定义自定义错误处理函数,每当发生错误时都会调用该函数
set_error_handler(function($errno, $errstr, $errfile, $errline) {
throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
});
// Your code here