You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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. InRespect\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 througherror_reporting() === 0
. So this check needs to be done inRespect\Rest\Request::prepareForErrorForwards()
before adding a error to the error side route. Method would look like this:I can provide a pull request, too.
The text was updated successfully, but these errors were encountered: