This is just an issue to keep track of which of the implemented RFCs for PHP 8.6 have been addressed.
This list should be updated when additional RFCs are accepted/implemented.
To Do
Aside from the RFCs, there are also the changes which were made outside of the RFC process and are listed in:
Claimed
Additionally, an initial scan of the UPGRADING file for additional list-based updates to be made is ongoing and owned by @jrfnl.
Has PR
Nothing yet
Reviewed and concluded non-sniffable
Rejected RFCs
Delayed to later PHP version
Nothing yet
Status yet to be determined
These are RFCs which have either not yet been implemented or are still in voting at this time.
Once their final status for PHP 8.6 is determined, they will either be moved to the "To Do" list or removed from this ticket.
Accepted, not yet (fully) implemented
In voting
All votes have been closed
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.6 comes out, individual issues should be opened for the changes which remain at that point in time.
Guidelines
- When in doubt how to address something and/or if your approach is the right one: ask.
This also means that it is perfectly acceptable to open an dedicated issue to discuss a particular change in more detail.
- PRs which address RFCs should only contain the changes for one RFC per PR. One RFC may warrant multiple PRs depending on the nature of the changes.
Exception: when a RFC builds onto a previous RFC, combining the necessary changes into one PR addressing the cumulative changes to PHP is fine.
- PRs not directly related to RFCs may address multiple changes in one go, as long as the changes are logically closely related (like adding a range of new constants to be detected).
- Please include relevant change justification and links in each commit message.
Typically this means that a commit message should include:
- Text snippet from the PHP
UPGRADING guide/changelog/migration guide or the RFC to back up the change being made.
- A link to the RFC (if applicable).
- A link to the exact
UPGRADING guide/changelog/migration guide section which documents the change in PHP Core.
- A link to the PR to PHP Core which proposed the change (if applicable).
- A link to the commit which added the change to PHP Core.
- Changes which were proposed/accepted for PHP, but have not been merged into PHP Core yet, should not be detected by PHPCompatibility (yet).
The commit to PHP Core should always come first, PHPCompatibility follows.
This is just an issue to keep track of which of the implemented RFCs for PHP 8.6 have been addressed.
This list should be updated when additional RFCs are accepted/implemented.
To Do
Note: the classes/enums/function etc are addressed via PR #.... Still needs evaluation whether the new stream error context options are sniffable.
Note: the procedural functions have been addressed via PR #.... The OO methods still needs detecting.
Note: the procedural function has been addressed via PR #.... The OO method still needs detecting.
Note: the classes are addressed via PR #.... Still needs evaluation whether the new stream context options are sniffable.
Note: these may not all be fully implemented yet! PRs to detect the deprecation will only be accepted after the deprecation has been merged into PHP Core.
Sublist:
Note: the procedural function has been addressed via PR #.... The OO method + constructor signature still needs detecting.
Note: the procedural function has been addressed via PR #.... The OO method still needs detecting.
Aside from the RFCs, there are also the changes which were made outside of the RFC process and are listed in:
Claimed
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled for the classes, functions, params. Still needs evaluation whether the new stream error context options are sniffable.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: TODO / needs a good think, see Further improve attribute detection/flagging #1935
Owner: @jrfnl
Status: Ready to be pulled for the procedural functions.
Owner: @jrfnl
Status: WIP, including updates via upcoming new
NewEnumssniff.Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: WIP via upcoming new
NewEnumssniff.Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled for the procedural function.
Owner: @jrfnl
Status: Ready to be pulled for the classes. Still needs evaluation whether the new stream context options are sniffable.
Owner: @jrfnl
Status: Ready to be pulled. We may also want to investigate whether a useful detection can be set up for custom error handlers which would be impacted via
set_error_handler.Owner: @jrfnl
Status: Needs tokenizer support in PHPCS
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Sublist:
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled.
Owner: @jrfnl
Status: Ready to be pulled for the procedural function.
Owner: @jrfnl
Status: Ready to be pulled for the procedural function.
Owner: @jrfnl
Additionally, an initial scan of the UPGRADING file for additional list-based updates to be made is ongoing and owned by @jrfnl.
Has PR
Nothing yet
Reviewed and concluded non-sniffable
Sublist:
Reviewed by @jrfnl and concluded there's nothing to do here for PHPCompatibility.
"This appears to be a correction to the implementation of the removal of support for case-sensitive constants in PHP 8.0 as previously deprecated in PHP 7.3.
In my opinion, this is an irrelevant implementation error on the side of PHP and the actual removal of support for case-sensitive constants is what PHPCompatibility should flag and already does via the
RemovedFunctionParameterssniff."Relevant PHPCompatibility PRs: PHP 7.3: DeprecatedFunctionParameters: account for change to define() #706 and PHP 8.0: RemovedFunctionParameters: handle removed parameter x 3 #1185
Rejected RFCs
Sublist:
Deprecate the list() constructRFC rejectedDeprecate using “in”, “out”, and “inout” as identifiersRFC rejectedDeprecate using “_” as a function name and the _() function alias for gettext()RFC rejectedDeprecate dechunk filterRFC rejectedDelayed to later PHP version
Nothing yet
Status yet to be determined
These are RFCs which have either not yet been implemented or are still in voting at this time.
Once their final status for PHP 8.6 is determined, they will either be moved to the "To Do" list or removed from this ticket.
Accepted, not yet (fully) implemented
Already reviewed by @jrfnl and concluded there's nothing to do here for PHPCompatibility.
Sublist:
In voting
All votes have been closed
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.6 comes out, individual issues should be opened for the changes which remain at that point in time.
Guidelines
This also means that it is perfectly acceptable to open an dedicated issue to discuss a particular change in more detail.
Exception: when a RFC builds onto a previous RFC, combining the necessary changes into one PR addressing the cumulative changes to PHP is fine.
Typically this means that a commit message should include:
UPGRADINGguide/changelog/migration guide or the RFC to back up the change being made.UPGRADINGguide/changelog/migration guide section which documents the change in PHP Core.The commit to PHP Core should always come first, PHPCompatibility follows.