Just the Gist
RFC is Request For Comment. It is a way to suggest changes to the language. Adding features and deprecations to PHP goes through the RFC process, where community members can suggest, discuss and implement the changes.
The way PHP is evolving and how we work with it is a community effort. There isn't a single company, or a single person, that decides what features should be included in PHP and how they are implemented. There is a community of developers working on it. While there are Release Managers that oversee the release process, they do not decide the features or implementation. It all boils down to community raised suggestions in the form of RFCs - or Request For Comments.
An RFC is a proposal for a new feature or a change to an existing feature that is later on put to a vote. While most anyone can propose an RFC, it is highly likely to fail if the one suggesting it is not able to see themselves implementing it. When the RFC is first drafted, it is often called a "proposal". This proposal is then put up for public discussion.
A proposal currently under discussion is Readonly classes. Such a discussion is good for ironing out any issues that may arise, and addressing the usability of the proposed feature. When discussion ends and all questions are addressed, the next step is to put the proposal to a vote. Proposals currently being voted on are listen on the official page for the RFC. Recently a vote finished where the RFC proposed to move the current bug tracker to the GitHub issue tracker for the PHP repository (Migrating to GitHub Issues). This proposal was accepted.
When a proposal is accepted, next is implementing it. The RFC will most often contain a targeted version in which it will be implemented, so everyone in the community knows what to expect and when.
Have you heard of this process before? Would you be willing to take part in it, or are you already a major player? Is there anything more you would like to see, or comment, about the RFC process? Comment below and let us know what you think ✍
- Ramsey on being chosen as a release manager - https://dev.to/ramsey/i-m-a-release-manager-for-php-8-1-24i2
- Release process - https://wiki.php.net/rfc/releaseprocess
- The Mysterious PHP RFC Process - https://blogs.oracle.com/opal/post/the-mysterious-php-rfc-process-and-how-you-can-change-the-web