Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Call previous error handler at end of QM_Collector_PHP_Errors::error_handler() #759

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

BrianHenryIE
Copy link

We have an MU plugin to mute deprecation warnings. With Query Monitor active, its error handler is never run.

The common pattern is to save the return value of set_error_handler() to an instance variable, as you have done with $previous_error_handler, and then to call it at the end of the new error handler, if it exists. I have added the latter part.

https://www.php.net/manual/en/function.set-error-handler.php#123459

@johnbillion
Copy link
Owner

Thanks for the PR! I'll need to investigate the wider impact of this change.

@BrianHenryIE BrianHenryIE marked this pull request as draft May 15, 2023 19:34
@BrianHenryIE
Copy link
Author

I think I need to move the call to the previous error handler to before the filter so it is always run. Currently the filter could short-circuit and return true without calling it. E.g. here is an error handler which logs the error if it's relevant to the plugin, I don't think it's Query Monitor's place to decide not run this code: bh-wp-logger

I'm having trouble spinning up the test environment (although I obviously had it running already). I'll try again soon.

@kagg-design
Copy link

This might be fixed by #938.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants