PHP Standards Recommendations
2017/01/20現在、18個のPSRが存在します。
内訳は8個がACCEPTED、1個がREVIEW、8個がDRAFT、1個がDEPRECATEDとなっています。
以下の日付は決定した日ではなく、変更がcommitされた日です。
ACCEPTED
PSR-1 Basic Coding Standard
2012/03/24に提出、2012/06/05に受理。
最低限準拠すべき基本的なコーディング規約を規定している。
BOM無しUTF-8にしろとか勝手にechoやini_setするなとかレベルなので本当に超絶基礎的。
PSR-2 Coding Style Guide
2012/05/04に提出、2012/06/05に受理。
いわゆるコーディング規約、およびコーディングスタイル規約。
後継のPSR-12が提出中。
PSR-3 Logger Interface
2012/11/29に提出、2013/01/06に受理。
ロギング処理の標準化。
PSR-4 Autoloading Standard
2013/05/07に提出、2013/12/04に受理。
オートローディングの仕様で、PSR-0の上位版。
PSR-6 Caching Interface
2012/02/25に提出、2015/12/11に受理。
キャッシュ処理の標準化。
検索結果などを保持しておいたりとか。
PSR-7 HTTP Message Interface
2013/01/01に提出、2015/05/19に受理。
HTTPリクエストとリスポンスの標準仕様。
$_REQUEST
に$_SERVER
、$_FILES
などの入力はRequestInterfaceから受け取り、出力はResponseInterfaceに突っ込めば万事OK、的な運用。
PSR-13 Hypermedia Links
2015/10/28に提出、2016/11/16に受理。
異なる種類のメディアでデータを受け渡す方法の標準化だと思うのだがよくわからん。
HTMLとJSONとMathMLでやりとりできるとかそんなん?
PSR-16 Simple Cache
2016/05/30に提出、2017/01/01に受理。
キャッシュ処理の標準化で、PSR-6とほとんど同じなんだけど、より単純で機能が少ないぶん簡単に使えるらしい。
REVIEW
PSR-11 Container Interface
2015/04/01に提出。
DIコンテナの標準化。
DRAFT
PSR-5 PHPDoc Standard
2013/08/06に提出。
@param、@returnなどコメントのフォーマットを規定している。
だいたいphpDocumentor2。
PSR-8 Huggable Interface
2014/02/23に提出。4月1日ではない。
こいつの意味は未だにわからない。
開発者同士仲良くしようぜっていういい話でいいんだろうか。
実際はそうそううまくはいかないみたいですが。
PSR-9 Security Advisories
2014/11/05に提出。
セキュリティ問題対策のうち、開発者に向けての告知。
フォーマットを取り決め、必要な情報を揃えやすくするような作りになっている。
PSR-10 Security Reporting Process
2015/02/09にPSR-9から分割。
セキュリティ問題対策のうち、使用するユーザ側に向けての告知。
詳細な項目とかはなくて、方針みたいなのしか書いてないっぽい。
PSR-12 Extended Coding Style Guide
2015/08/23に提出。
PSR-2の置き換えを目指した新たなコーディングスタイル規約。
主にPHP7への対応となる。
PSR-14 Event Manager
2016/03/18に提出。
PHPにイベント駆動型の仕組みを提供する。
Observerパターン。
PSR-15 HTTP Middlewares
2016/05/10に提出。
HTTPミドルウェアの標準化。
Laravelで使われてるみたいなやつ。
PSR-17 HTTP Factories
2016/05/24に提出。
PSR-7互換のリクエスト/レスポンスオブジェクトを作成するファクトリ。
DEPRECATED
PSR-0 Autoloading Standard
2010/11/05より前に提出・受理、2014/10/08に廃棄。
オートローディングを自動化するための仕組み。
上位版のPSR-4が受理されたため廃棄された。
まとめ
コーディング規約がありInterfaceがありただの指針もありと、わりかしまとまりがない。
あまり知らないPSRは適当な紹介なので間違ってるところがあるかもしれない。