PHP 8.4 and 8.5 compatibility#25
Merged
falkenhawk merged 7 commits intomasterfrom Apr 2, 2026
Merged
Conversation
155f03f to
98b5f8f
Compare
…-to-int, dataToString recursion guard
Node.js 20 actions are deprecated and will be forced to Node.js 24 starting June 2nd, 2026. actions/checkout@v3 runs on Node.js 20, v4 supports Node.js 24.
This was referenced Apr 2, 2026
This was referenced Apr 2, 2026
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.
ensure PHP 8.4 and 8.5 compatibility. All changes are backward-compatible with PHP 5.3+.
add PHP 8.4 and 8.5 to CI matrix
fix implicit nullable parameter deprecation on PHP 8.4+ (followup to PHP 8.4: Implicitly nullable parameter declarations deprecated #22) - remove type hints from parameters with
= NULLdefault, add runtime type checks viaPHPUnit_Util_InvalidArgumentHelperwhere applicable. Uses the existing PHPUnit utility class instead ofZf1s\Compat\Typesfrom the linked PR since that package doesn't exist on packagist yet, and for 13 occurrences in a single repo a shared dependency isn't warranted.replace deprecated
SplObjectStorage::attach()/contains()withoffsetSet()/offsetExists()(PHP 8.5)skip deprecated
ReflectionProperty::setAccessible()on PHP 8.1+ (no-op since 8.1, deprecated in 8.5)fix remaining PHP 8.5 deprecations: non-canonical
(integer)cast,NAN/INFfloat-to-int guard inType::recursiveExport(), recursion depth guard indataToString()to prevent OOM on self-referencing test dataupdate
actions/checkoutv3 to v4 (Node.js 20 deprecation)Note: PEAR still has
(integer)cast and backtick operator deprecations on PHP 8.5 (pear/pear-core#167). These don't currently affect test results but will log deprecation warnings.