The RFC Process
About the PHP Project

Within the PHP Project, RFCs (Requests for Comments) are the means by which proposals are made and decisions are taken.

 

Every RFC begins with a person, or persons, with an idea.

It may be a brand-new idea, something inspired by another language, or even something that had previously been discussed, but its time had not yet come.

Anyone can propose an RFC, no matter their level of prior involvement with the PHP Project.

The Process
How proposals are made, and decisions taken
  1. The RFC author writes up their proposal into a document on the RFC wiki.

    For language matters, RFCs usually target the next major version of PHP, although the author may choose to target later versions at their discretion.

  2. The author announces their RFC by emailing the PHP Internals mailing list, including a link to the proposal on the wiki, and usually a brief explainer.

  3. Members of the PHP Internals mailing list will then begin to discuss the proposal.

    The author is expected to be highly receptive to the input of other contributors, and, to the best of their ability, respond to any questions, comments, or concerns raised.

    The RFC document may be edited during this time in response to the discussion, clarifying certain matters, or, if needed, making changes to ensure that the RFC that will eventually be voted on is the best it can be.

    There must be a minimum of 2 weeks or discussion before the RFC process can move forward, although in reality most proposals are discussed for much longer.

  4. Once 2 weeks have passed, and the author is happy that discussion has either run its course, they may bring the RFC to a vote.

    To do this, they open voting on the proposal's wiki page, and then make a fresh new post to the PHP Internals mailing list.

    Voting is usually one major yes/no question, although some proposals include sub-votes. Occasionally a single RFC will contain a large number of smaller but related votes, as is typically the case with bulk deprecations.

  5. Voting runs for a minimum of 2 weeks.

  6. If the vote passes by a 2/3rds majority, it is adopted by the PHP Project.

    If this is a technical change, its code-based implementation it must still meet the code quality, performance, and stability requirements of the PHP Project.

To Top