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 Further improve attribute detection/flagging #1935
Owner : @jrfnl
Arbitrary static variable initializers
Status : Under investigation, see PHP 8.3: Arbitrary static variable initializers #1986
Owner : @afilina
Make unserialize() emit a warning for trailing data
Status : Under investigation, see PHP 8.3: Make unserialize() emit a warning for trailing bytes #1987
Owner : @afilina
Improve unserialize() error handling
Status : Under investigation, see PHP 8.3: Improve unserialize() error handling #1988
Owner : @afilina
Readonly amendments
Status : Under investigation, see PHP 8.3: Readonly amendments #1989
Owner : @afilina
Saner array_(sum|product)()
Status : Under investigation, see PHP 8.3: Saner array_(sum|product)() #1990
Owner : @afilina
Define proper semantics for range() function
Status : Under investigation, see PHP 8.3: Define proper semantics for range() function #1991
Owner : @afilina
Randomizer Additions
Status : Under investigation, see PHP 8.3: Randomizer Additions #1992
Owner : @afilina
Use exceptions by default in SQLite3 extension
New class is handled in PR PHP 8.3 | NewClasses: detect SQLite3Exception class (RFC) #1936 , but there is more to do related to this RFC.
Status : Under investigation, see PHP 8.3: Use exceptions by default in SQLite3 extension #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 PHP 8.3 / 8.4: DatePeriod::__construct() replacement/deprecation #1977
Owner : @afilina
dba_fetch()
Status : Under investigation, see PHP 8.3: deprecate dba_fetch() #1978
Owner : @afilina
FFI::cast(), FFI::new(), and FFI::type()
Status : Under investigation, see PHP 8.3: deprecate FFI::cast(), FFI::new(), and FFI::type() #1979
Owner : @afilina
Phar::setStub()
Status : Under investigation, see PHP 8.3: deprecate Phar::setStub() #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 PHP 8.3: ReflectionMethod::__construct() replacement #1981
Owner : @afilina
ReflectionProperty::setValue()
Status : Under investigation, see PHP 8.3: ReflectionProperty::setValue() #1982
Owner : @afilina
Has PR
Reviewed and concluded non-sniffable
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.
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
Status: TODO / needs a good think, see Further improve attribute detection/flagging #1935
Owner: @jrfnl
Status: Under investigation, see PHP 8.3: Arbitrary static variable initializers #1986
Owner: @afilina
Status: Under investigation, see PHP 8.3: Make unserialize() emit a warning for trailing bytes #1987
Owner: @afilina
Status: Under investigation, see PHP 8.3: Improve unserialize() error handling #1988
Owner: @afilina
Status: Under investigation, see PHP 8.3: Readonly amendments #1989
Owner: @afilina
Status: Under investigation, see PHP 8.3: Saner array_(sum|product)() #1990
Owner: @afilina
Status: Under investigation, see PHP 8.3: Define proper semantics for range() function #1991
Owner: @afilina
Status: Under investigation, see PHP 8.3: Randomizer Additions #1992
Owner: @afilina
New class is handled in PR PHP 8.3 | NewClasses: detect SQLite3Exception class (RFC) #1936, but there is more to do related to this RFC.
Status: Under investigation, see PHP 8.3: Use exceptions by default in SQLite3 extension #1994
Owner: @afilina
Sublist:
👉🏻 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 PHP 8.3 / 8.4: DatePeriod::__construct() replacement/deprecation #1977
Owner: @afilina
Status: Under investigation, see PHP 8.3: deprecate dba_fetch() #1978
Owner: @afilina
Status: Under investigation, see PHP 8.3: deprecate FFI::cast(), FFI::new(), and FFI::type() #1979
Owner: @afilina
Status: Under investigation, see PHP 8.3: deprecate Phar::setStub() #1980
Owner: @afilina
👉🏻 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 PHP 8.3: ReflectionMethod::__construct() replacement #1981
Owner: @afilina
Status: Under investigation, see PHP 8.3: ReflectionProperty::setValue() #1982
Owner: @afilina
Has PR
Sublist:
PHPCompatibility.ParameterValues.RemovedMbStrimWidthNegativeWidthsniff (RFC) #1615MT_RAND_PHP(RFC) #1623PHPCompatibility.ParameterValues.RemovedLdapConnectSignaturessniff (RFC) #1620PHPCompatibility.Classes.NewTypedConstantssniff #1808mb_str_pad()(RFC) #1625json_validate()(RFC) #1622Sublist:
PHPCompatibility.ParameterValues.RemovedGetClassNoArgssniff (RFC) #1614👉🏻 This deprecation won't actually take effect until PHP 8.4.
stream_context_set_options()(RFC) #1631 + PHP 8.4 | OptionalToRequiredFunctionParameters: account for deprecation of overloaded stream_context_set_option() signature (RFC) #1672Reviewed and concluded non-sniffable
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*()functionsarray_keys()RFC rejectedInvestigated by @afilina and concluded non-sniffable. See investigation notes in PHP 8.3: Path to Saner Increment/Decrement operators #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.