PHPCompatibility / PHPCompatibility/PHPCompatibility
Account for changes introduced in PHP 8.3
Nobody has claimed this yet.
- Dominant language
- PHP
- Stars
- 2.3k
- Forks
- 201
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 42
Description
This is just an issue to keep track of which of the implemented RFCs for PHP 8.3 have been addressed.
This list should be updated when additional RFCs are accepted/implemented.
To Do
Everything is assigned to a contributor
Aside from the RFCs, there are also the changes which were made outside of the RFC process and are listed in:
Claimed
- Marking overridden methods (#[\Override])
Status: TODO / needs a good think, see #1935
Owner: @jrfnl - Arbitrary static variable initializers
Status: Under investigation, see #1986
Owner: @afilina - Make unserialize() emit a warning for trailing data
Status: Under investigation, see #1987
Owner: @afilina - Improve unserialize() error handling
Status: Under investigation, see #1988
Owner: @afilina - Readonly amendments
Status: Under investigation, see #1989
Owner: @afilina - Saner array_(sum|product)()
Status: Under investigation, see #1990
Owner: @afilina - Define proper semantics for range() function
Status: Under investigation, see #1991
Owner: @afilina - Randomizer Additions
Status: Under investigation, see #1992
Owner: @afilina - Use exceptions by default in SQLite3 extension
New class is handled in PR #1936, but there is more to do related to this RFC.
Status: Under investigation, see #1994
Owner: @afilina - Deprecate functions with overloaded signatures
Sublist:- DatePeriod::__construct()
👉🏻 This deprecation won't actually take effect until PHP 8.4, though a replacement method will be added in PHP 8.3.
Status: Under investigation, see #1977
Owner: @afilina - dba_fetch()
Status: Under investigation, see #1978
Owner: @afilina - FFI::cast(), FFI::new(), and FFI::type()
Status: Under investigation, see #1979
Owner: @afilina - Phar::setStub()
Status: Under investigation, see #1980
Owner: @afilina - ReflectionMethod::__construct()
👉🏻 This deprecation won't actually take effect until PHP 8.4, though a replacement method will be added in PHP 8.3.
Status: Under investigation, see #1981
Owner: @afilina - ReflectionProperty::setValue()
Status: Under investigation, see #1982
Owner: @afilina
- DatePeriod::__construct()
Has PR
- Deprecations for PHP 8.3
Sublist:- Passing negative $widths to mb_strimwidth() - PR #1615
- The NumberFormatter::TYPE_CURRENCY constant - PR #1975
- MT_RAND_PHP - PR #1623
- Deprecate calling ''ldap_connect'' with 2 parameters - PR #1620
- Dynamic class constant fetch - PR #1974
- Typed Class Constants - PR #1808
- Deprecate remains of string evaluated code assertions - PR #1618
- mb_str_pad - PR #1625
- More Appropriate Date/Time Exceptions - PR #1937
- json_validate function - PR #1622
- Use exceptions by default in SQLite3 extension - PR #1936
- Deprecate functions with overloaded signatures
Sublist:- get_class() and get_parent_class() - PR #1614
- IntlCalendar::set() - PR #1674
- IntlGregorianCalendar::__construct() - PR #1676
- ldap_connect() - PR #1626 + #1671
- ldap_exop() - PR #1626 + #1673
- pg_fetch_result(), pg_field_prtlen(), and pg_field_is_null() - PR #1736
👉🏻 This deprecation won't actually take effect until PHP 8.4. - session_set_save_handler() - PR #1677
- stream_context_set_option() - PR #1631 + #1672
Reviewed and concluded non-sniffable
- Deprecations for PHP 8.3
Unnecessary crypt() related constantsRFC rejectedGlobal Mersenne Twister - vote 1RFC rejected*rand*()functionsGlobal Mersenne Twister - vote 2RFC accepted, but as it was a vote which was dependent on vote 1, nothing will change.*shuffle*()functions
- Deprecate functions with overloaded signatures
array_keys()RFC rejected
- Path to Saner Increment/Decrement operators
Investigated by @afilina and concluded non-sniffable. See investigation notes in #1985.
Process
If anyone starts work on updating PHPCompatibility to handle any of these issues, please either update the above list (if you can) or leave a comment below, so one of the maintainers can update the list.
Once PHP 8.3 comes out, individual issues should be opened for the changes which remain at that point in time.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the PHP 8.3 RFC, upgrading, migration, NEWS, and changelog links in the issue, then review the unchecked entries and their referenced investigations. The issue provides no source files or tests; work is complete only when a specific compatibility gap is addressed and the corresponding checklist entry is updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 18/100