Open
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
- Deprecations for PHP 8.3
Sublist: - 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. - dba_fetch()
- FFI::cast(), FFI::new(), and FFI::type()
- Phar::setStub()
- ReflectionMethod::__construct()
👉🏻 This deprecation won't actually take effect until PHP 8.4, though a replacement method will be added in PHP 8.3. - ReflectionProperty::setValue()
- DatePeriod::__construct()
- Path to Saner Increment/Decrement operators
- Arbitrary static variable initializers
- Make unserialize() emit a warning for trailing data
- Dynamic class constant fetch
- Improve unserialize() error handling
- Readonly amendments
- Saner array_(sum|product)()
- Define proper semantics for range() function
- Randomizer Additions
- More Appropriate Date/Time Exceptions
- Use exceptions by default in SQLite3 extension
Aside from the RFCs, there are also the changes which were made outside of the RFC process and are listed in:
- The PHP 8.3 Upgrading guide.
- The PHP 8.2 to 8.3 Migration guide (once available)
- PHP 8.3 NEWS/Changelog
- Changelog
Claimed
- Marking overridden methods (#[\Override])
Status: WIP
Owner: @jrfnl - Typed Class Constants
Status: Ready, waiting for release ofPHPCS 3.9.0 andPHPCSUtils 1.1.0
Owner: @jrfnl
Has PR
- Deprecations for PHP 8.3
Sublist:- Passing negative $widths to mb_strimwidth() - PR PHP 8.3 | ✨ New
PHPCompatibility.ParameterValues.RemovedMbStrimWidthNegativeWidth
sniff (RFC) #1615 - MT_RAND_PHP - PR PHP 8.3 | RemovedConstants: recognize
MT_RAND_PHP
(RFC) #1623 - Deprecate calling ''ldap_connect'' with 2 parameters - PR PHP 8.3 | ✨ New
PHPCompatibility.ParameterValues.RemovedLdapConnectSignatures
sniff (RFC) #1620
- Passing negative $widths to mb_strimwidth() - PR PHP 8.3 | ✨ New
- Deprecate remains of string evaluated code assertions - PR PHP 8.3 | Various sniffs: deprecate remains of string evaluated code assertions (RFC) #1618
- mb_str_pad - PR PHP 8.3 | NewFunctions: detect use of
mb_str_pad()
(RFC) #1625 - json_validate function - PR PHP 8.3 | NewFunctions: detect use of
json_validate()
(RFC) #1622 - Deprecate functions with overloaded signatures
Sublist:- get_class() and get_parent_class() - PR PHP 8.3 | ✨ New
PHPCompatibility.ParameterValues.RemovedGetClassNoArgs
sniff (RFC) #1614 - IntlCalendar::set() - PR PHP 8.4 | RemovedFunctions: account for deprecation of intlcal_set() (RFC) #1674
- IntlGregorianCalendar::__construct() - PR PHP 8.4 | RemovedFunctions: account for deprecation of intlgregcal_create_instance() (RFC) #1676
- ldap_connect() - PR PHP 8.3 | NewFunctions: recognize ldap_connect_wallet() and ldap_exop_sync() (RFC) #1626 + PHP 8.4 | ParameterValues/RemovedLdapConnectSignatures: account for deprecation of three+ param signature (RFC) #1671
- ldap_exop() - PR PHP 8.3 | NewFunctions: recognize ldap_connect_wallet() and ldap_exop_sync() (RFC) #1626 + PHP 8.4 | RemovedFunctionParameters: account for deprecation of overloaded ldap_exop() signature (RFC) #1673
- pg_fetch_result(), pg_field_prtlen(), and pg_field_is_null() - PR PHP 8.4 | OptionalToRequiredFunctionParameters: account for deprecation of overloaded pg_*() signatures (RFC) #1736
👉🏻 This deprecation won't actually take effect until PHP 8.4. - session_set_save_handler() - PR PHP 8.4 | RemovedFunctionParameters: account for deprecation of overloaded session_set_save_handler() signature (RFC) #1677
- stream_context_set_option() - PR PHP 8.3 | NewFunctions: recognize
stream_context_set_options()
(RFC) #1631 + PHP 8.4 | OptionalToRequiredFunctionParameters: account for deprecation of overloaded stream_context_set_option() signature (RFC) #1672
- get_class() and get_parent_class() - PR PHP 8.3 | ✨ New
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
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.