Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

PHP Community-driven Standards


PHP CDS is not a group or organisation, it's a concept. Its core idea is for the community to create RFCs, discuss them, then hold a vote on their acceptance as a community standard.

Its aim is to be as loosely coupled to any individual, group or organisation as possible. RFCs/Standards are proposed, discussed, agreed upon in the simplest possible fashion by the community. Anyone willing to contribute to the PHP community is welcome to participate in the CDS process.

Its aim is not to propose standards itself, have members or limit discussion.

Because there is no membership involved, there's no in-house lobbying. If you propose ideas, you don't need to convince the right people: You are free to propose anything you want, and the community as a whole can accept or reject your idea.



None yet.



PSR-0 Autoloading Standard (deprecated)
PSR-1 Basic Coding Standard
PSR-2 Coding Style Guide
PSR-3 Logger Interface
PSR-4 Autoloader
PSR-6 Caching Interface
PSR-7 HTTP Message Interface

How the Process Works

Create an RFC

An RFC is a request-for-comment, mostly in form of an issue in the php-cds/php-cds repository. Authors describe their idea, maybe even first draft of an API, and open it immediately for discussion and voting.

Voting for an RFC

RFCs can be voted on immediately using GitHub reactions using 👍 and 👎. Based on this immediate feedback, authors can quickly see whether there is merit to their idea.

Participants have the ability to watch for activity using GitHub's watch function on the php-cds/php-cds repository.

Discussion on implementation

If an author decides to create a concrete implemention of an interface/API/document based on an RFC, all discussion should happen in the php-cds/php-cds-discussion repository.

Discussion in a separate repository prevents noise for those who are only interested in voting.

Those who want to be more involved in the Community-driven Standards process can watch the php-cds/php-cds-discussion repository.

Get involved

All you need to get involved is a GitHub account. You can participate in several different ways:


Watch the php-cds/php-cds and especially the php-cds/php-cds-psr repositories for new RFCs and PSRs. Vote immediately using GitHub reactions with 👍 and 👎 on the incoming RFC's issue tracking page.

You can vote on RFCs in php-cds/php-cds and PSRs in php-cds/php-cds-psr. We will however announce in and Twitter @php_cds about new and ending PSR votings as well as ending RFCs.


If you want to get more involved, you can watch the php-cds/php-cds-discussion repository, where pull requests and discussions about implementions happen. You can participate in all discussions in this repository.


You can express your support for PHP-CDS by pressing the star button. This signals to other people that you support this concept, and also that you have an active interest in adopting those Community-driven Standards.


To keep discussions level-headed and to maintain state of RFCs, moderators are needed. If you want to be a moderator and you are a trustworthy member of the php community, then please write @marcj in gitter.

A moderator must not limit discussion or censor ideas. In an ideal world, moderators wouldn't be involved at all. They do not have any special purpose other than to help maintain clean repositories on behalf of the community.


Create a RFC

RFCs (request for comments) are made using the GitHub issue tracker of the php-cds/php-cds repository. You can create an issue, add a title, prefixed with [RFC] and start writing about your idea. That's it.

Try to be as concise as possible so readers will be able to quickly digest and understand your idea before voting.

How to vote on an RFC

In the GitHub issue tracker of the php-cds/php-cds repository you see all RFCs (issues with a title prefixed with [RFC]). After reading the issue description, try to understand it and express your opinion with a GitHub reaction using 👍 and 👎.

Implement/discuss an RFC

Once you think you have enough positive feedback from the community (as seen by the GitHub reactions) you are free to open a discussion thread in the php-cds/php-cds-discussion repository. People that are interested in joining your RFC can discuss and reply at any time. You can also create pull requests so people can easily comment on proposed code.

Publish PSR

Once an RFC has positive community reaction, you have decided to create a discussion and a concrete implemention, and you think your work is done and ready for prime time, the RFC becomes a PSR-proposal (PHP Standard Recommendation) as soon as you create a issue in the php-cds/php-cds-psr repository.

Creating an issue in this repository means you want to have a final vote on the RFC asking the community for your proposal to become an official PSR. It's completely up to you how you write your proposal. Any GitHub member is able to express their opinion as a comment or as a vote using 👍 and 👎.

A vote is considered successful if 2/3 of all votes are positive (👍). This means that an RFC becomes a recommended standard, which will be displayed in the php-cds repositories. Please note that this doesn't mean everyone automatically will use it; its still just a recommendation.

PSR names and changes

PSRs do not have numbers, they have names. For example "PSR-event-dispatcher" or "PSR-logging", ideally corresponding to the PHP namespace in which they reside ("PSR-event-dispatcher" -> Pcs\EventDispatcher).

PSRs do not have an initial version number attached. If a change is required, the version will be incremented by 1. For example, an update to "PSR-event-dispatcher" would become "PSR-event-dispatcher-2". The current version of all accepted PSRs are displayed in the php-cds repositories.

Close RFC and PSR

Every issue created in php-cds/php-cds (which represents an RFC) or php-cds/php-cds-psr (which represents a PSR) has an allowed voting window. The voting window is always 1 month from the creation date. If an RFC or PSR has more than 1/3 negative votes, it will be closed.


PHP Community Driven Standards






No releases published


No packages published