Throw new Error instead of E_USER_ERROR on PHP 7.0+#156
Merged
ashnazg merged 1 commit intopear:masterfrom Jul 19, 2025
Merged
Conversation
Calling trigger_error with E_USER_ERROR was the idiom in PHP 5.x for fatal errors that were (theoretically) recoverable but not meant to be caught by generic `catch (Exception $e)` statements. Since PHP 7.0, this has been obsoleted by the Throwable interface and the new Error class, which is outside the Exception hierarchy. Internal uses, such as for calling an undefined method, have been replaced by `throw new Error` since PHP 7.0, and calling trigger_error with E_USER_ERROR emits a deprecation warning as of PHP 8.4.0. Since this project supports PHP 5.6+, the old code is kept under a <7.0 condition. The PHP_VERSION_ID constant is available since PHP 5.2.7, https://3v4l.org/ifWRP. Fixes pear#155.
|
CloCkWeRX
approved these changes
Jun 19, 2025
Member
CloCkWeRX
left a comment
There was a problem hiding this comment.
That seems sensible, and broadly backwards compatible. I'll leave it to other maintainers to make the final call.
ashnazg
approved these changes
Jul 19, 2025
Member
|
Released in v1.10.17. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Calling trigger_error with E_USER_ERROR was the idiom in PHP 5.x for fatal errors that were (theoretically) recoverable but not meant to be caught by generic
catch (Exception $e)statements.Since PHP 7.0, this has been obsoleted by the Throwable interface and the new Error class, which sits outside the Exception hierarchy.
Internal use, such as for calling an undefined method, also throw
Errorsince PHP 7.0 (https://3v4l.org/Y9bFm), and calling trigger_error with E_USER_ERROR emits a deprecation warning as of PHP 8.4.0.Since this project supports PHP 5.6+, the old code is kept under a <7.0 condition.
The PHP_VERSION_ID constant is available since PHP 5.2.7 (https://3v4l.org/ifWRP).
Fixes #155.