PHP 8.6 deprecation RFC gains usage data from Packagist scans
PHP internals is discussing a bundled RFC of proposed PHP 8.6 deprecations.
Juliette Reinders Folmer added PHPCompatibility scan results for Packagist Top 4000 packages, giving voters counts for affected code paths. The discussion also flags missing impact analysis in several proposals and asks authors to add or validate the data before the RFC is frozen.
PHP internals is reviewing a grouped RFC for deprecations planned for PHP 8.6. Gina P. Banyard said the proposals were gathered over the past year and that each item will be voted on separately. She also noted that the RFC must be finalized and frozen by 13 July under the newer RFC policy.
Several participants then focused on the lack of impact data in the proposal text. Juliette Reinders Folmer argued that voters need more than justification and offered to help run scans with PHP_CodeSniffer and PHPCompatibility.
She later published scan results for the Packagist Top 4000, covering 446,664 files as of 2 July. Her caveats were that the sample is not representative of all PHP code, the findings were not manually validated or deduplicated, false positives and false negatives are possible, and the numbers do not show how much work the eventual upgrade would require.
The scan results listed findings for many proposals, including 12,275 hits for deprecating list(), 625 for spl_object_hash(), 303 for is_integer(), 96 for _() as a function name, 42 for define() with $case_insensitive, 35 for is_double(), 33 for identifiers in/out/inout, 21 for namespace as a class constant or static property, 17 for SORT_LOCALE_STRING, 16 for is_long(), 11 for strcoll(), 9 for metaphone(), 8 for return from finally, 8 for doubleval(), 7 for _ as a constant alias, 3 for let, 2 for readonly as a function, and zeros for several proposals including is_subclass_of(), is_a(), spl_classes(), mysqli_stmt_init() scans, and mysqli_get_charset().
The thread also refined some of the numbers. Tim Düsterhus noted that one listed example project under in/out/inout was misleadingly grouped, and questioned whether _ as a constant alias was actually affected in one case. Kamil Tekiela later corrected the mysqli section, saying the procedural mysqli_stmt_init() function had been missed and that the proposal text was updated. The discussion remains centered on how much impact information should accompany each deprecation before votes begin.
Readers’ Forum
No contributions yet — open the debate.
Open the discussion
No account or password needed — just enter your e-mail and we’ll send you a one-time sign-in link. First time here? You’re set up automatically.
Your rating will be applied automatically after you sign in.
Check your inbox
We’ve sent a sign-in link to …. Open it on this device — this tab will sign you in automatically.
Waiting for your click …
·