-
Notifications
You must be signed in to change notification settings - Fork 100
Open
Description
Errors/warnings of functions which are suppressed with "@" (for example @array_keys_exist('test', new \stdClass()) in PHP 7.4) are not ignored by the error handling. In Respect\Rest\Request::prepareForErrorForwards() all errors are collected and later forwarded to the error route. Problem is that the information if a error/warning was suppressed with "@" isn't present in the error route anymore. It only can be checked in the PHP error handler callback through error_reporting() === 0. So this check needs to be done in Respect\Rest\Request::prepareForErrorForwards() before adding a error to the error side route. Method would look like this:
protected function prepareForErrorForwards()
{
foreach ($this->route->sideRoutes as $sideRoute) {
if ($sideRoute instanceof Routes\Error) {
return set_error_handler(
function () use ($sideRoute) {
// Don't do anything if error_reporting is disabled by an @ sign
if (error_reporting() !== 0) {
$sideRoute->errors[] = func_get_args();
}
}
);
}
}
}
I can provide a pull request, too.
Metadata
Metadata
Assignees
Labels
No labels