PSR(PHPコーディング規約)の概要まとめ。
- 公開日
- 更新日
- カテゴリ:PSR
- タグ:PHP,PSR
Contents
PSR とは
PSR(PHP Standards Recommendations = PHP 標準勧告) とは、PHP-FIG(PHP Framework Interop Group = PHP フレームワーク相互運用性グループ)が策定している PHP コーディング規約です。
PSR 一覧
PSR 一覧(2022 年 10 月時点)
- PSR-1 Basic Coding Standard(基本的なコーディング標準)
- PSR-3 Logger Interface(ロガーインタフェース)
- PSR-4 Autoloader(オートローダー)
- PSR-6 Caching Interface(キャッシングインターフェイス)
- PSR-7 HTTP Message Interface(HTTP メッセージインターフェイス)
- PSR-11 Container Interface(コンテナインタフェース)
- PSR-12 Extended Coding Style(拡張コーディングスタイル)
- PSR-13 Hypermedia Links(ハイパーメディアリンク)
- PSR-14 Event Dispatcher
- PSR-15 HTTP Handlers(HTTP ハンドラ)
- PSR-16 Simple Cache(シンプル・キャッシュ)
- PSR-17 HTTP Factories(HTTP ファクトリ)
- PSR-18 HTTP Client(HTTP クライアント)
※ PSR-0 は廃止予定とされ、PSR-4 が代替となっています。 ※ PSR-2 は非推奨とされ、PSR-12 が代替となっています。
ステータスと承認フロー
公式ページの PSR 一覧 を見ると、ステータス別にインデックスされています。
そのステータスと、正式承認までのフローを理解しておくと一覧も読みやすいです。
承認フロー
- Pre-Draft 提案(必要・適切かどうかを議論する)
- Draft 草案(審議・検討)
- Review 審査(実用性評価)
- Accepted 承認
- Deprecated 廃止予定
- Abandoned 放棄
承認ステータス
各ステータスの詳細は以下の通りです。
Pre-Draft(提案)
関わるみんな(ワーキンググループ)で規約を策定し、それを議論して提案をまとめ、エントランス投票に合格すると Draft 段階へ移行する。ここでの投票は、「その提案自体が PSR として必要か」が問われる。
- エントランス投票
- 適切な投票権を持つコア委員による投票。投票率 50%以上に対して 2/3 の賛成で合格
Draft(草案)
FIG コア委員会による審議・検討。この間も、ワーキンググループのメンバーは内容を変更出来て、代替の提案が出来る。
提案そのものの準備と文書が完全である事が確認されると準備投票が行われ、合格すると Review 段階へ移行する。
準備投票 PSR の作業部会のメンバーによる投票。投票率 50%以上に対して 2/3 の賛成で合格
Review(審査)
提案の実用性を評価する。最低 4週間のトライアルが実装行われ、それが実証されるまで続く。
この段階で、提案にどうしても大きな変更の必要がある時は Draft フェースに戻す必要があるが、小さな変更はここでも起こる場合がある。
受諾投票に合格すると、正式に承認(Accepted)された PSR になる。
受諾投票 適切な投票権を持つコア委員による投票。投票率 50%以上に対して 2/3 の賛成で合格
Accepted(承認)
正式承認。ここのステータスのものが、いわゆる正式に PSR として勧告されているものになる。
Deprecated(廃止予定)
承認はされたが、もういらないよね。とか、新しいバージョンのものに替えられた場合はここに入る
Abandoned(放棄)
積極的に取り組まれていない PSR は放棄としてマークされる。
キーワード
このドキュメントのキーワードとして、RFC2119 で説明されているように以下解釈されます。
- MUST(しなければならない)
- MUST NOT(してはならない)
- REQUIRED(要求されている)
- SHALL(することになる)
- SHALL NOT(することはない)
- SHOULD(する必要がある)
- SHOULD NOT(しないほうがよい)
- RECOMMENDED(推奨される)
- MAY(してもよい)
- OPTIONAL(選択できる)