— y2sunlight 2020-04-21
PSR(PHP Standards Recommendations)は「PHP標準勧告」などと呼ばれており、PHP-FIG(PHP Framework Interop Group)が策定しているPHPのコーディング規約並びに標準インターフェース規格です。本編のフレームワーク編では何かとPSRを参考にしておりますので、この際、正確に勉強しようと思い本章を作ることにしました。ソフトウエア界には標準とか規約と呼ばれるものが多く存在し、従うか否かは自由なのですが、PSRについてはPHPエンジニアとして大いに参考になる思います。
本章は、若干の補足を加筆してはいるものの単にPSRのサイトを日本語に翻訳したものに過ぎません。英語が堪能な方は原文をご参照下さい。翻訳に当たっては、基本的に機械翻訳を使い、理解できない部分は独断で意訳しております。拙い訳では御座いますが恥を忍んで投稿しておりますので、ご指摘など御座いましたらコメントを頂ければ幸いです。
尚、PSR関連の投稿は本章作成時点のステータースがACCEPTED(承認)及びDraft(草稿)なものを対象としています。初回はPSR6までを予定しおり、逐次追加してPSR19までを投稿する予定です。
リンク
— 原文より抜粋して翻訳 PHP Standards Recommendations) 2020-04-21 現在
PSRワークフロー細則によれば、各PSRには作業中のステータスがあります。提案が参加投票に合格すると、ここに Draft (ドラフト)としてリストされます。 PSRが Accepted (承認)とマークされていない限り、変更される可能性があります。Draft中は大幅に変更される可能性がありますが、レビューにはわずかな変更しかありません。
PSRのワークフローは以下のようなステータスがあります:
Pre-Draft(プレドラフト) — 参加投票に合格するとDraftに進みますDraft(ドラフト) — 準備投票に合格するとReviewに進みますReview(レビュー) — 承認投票に合格するとAcceptedに進みますAccepted(承認) — 正式承認され提案(いわゆるPSR勧告となります)これ以外に次の2つのステータスもあります:
Deprecated(非推奨) — 承認されが不要になった提案(通常新バージョンに変わった提案)Abandoned(放棄) — 積極的な議論がなく放棄されれた提案
PSRワークフロー細則にも記載されているように、提案の1人または複数の Editor (編集者)は、本質的にPSRの主要な寄稿者および作成者であり、2人の投票メンバーによってサポートされています。これらのメンバーの1人が、レビューと投票を管理を担当する Coordinator (コーディネーター)で、もう1人が2人目のsponsor (スポンサー)です。
| No | タイトル | 編集者 | ステータス | 原文 |
|---|---|---|---|---|
| 0 | Autoloading Standard オートローディング規約 | Matthew Weier O’Phinney | Deprecated | PSR-0 |
| 1 | Basic Coding Standard 基本コーディング規約 | Paul M. Jones | Accepted | PSR-1 |
| 2 | Coding Style Guide コーディングスタイルガイド | Paul M. Jones | Deprecated | PSR-2 |
| 3 | Logger Interface ロガーインターフェイス | Jordi Boggiano | Accepted | PSR-3 |
| 4 | Autoloading Standard オートローディング規約 | Paul M. Jones | Accepted | PSR-4 |
| 5 | PHPDoc Standard PHPDoc規約 | Chuck Burgess | Draft | PSR-5 |
| 6 | Caching Interface キャッシングインターフェイス | Larry Garfield | Accepted | PSR-6 |
| 7 | HTTP Message Interface HTTPメッセージインターフェイス | Matthew Weier O’Phinney | Accepted | PSR-7 |
| 8 | Huggable Interface Huggableインターフェース | Larry Garfield | Abandoned | PSR-8 |
| 9 | Security Advisories セキュリティへの助言 | Michael Hess | Abandoned | PSR-9 |
| 10 | Security Reporting Process セキュリティレポートプロセス | Michael Hess | Abandoned | PSR-10 |
| 11 | Container Interface コンテナインターフェース | Matthieu Napoli, David Négrier | Accepted | PSR-11 |
| 12 | Extended Coding Style Guide 拡張コーディングスタイルガイド | Korvin Szanto | Accepted | PSR-12 |
| 13 | Hypermedia Links ハイパーメディアリンク | Larry Garfield | Accepted | PSR-13 |
| 14 | Event Dispatcher イベントディスパッチャー | Larry Garfield | Accepted | PSR-14 |
| 15 | HTTP Handlers HTTPハンドラー | Woody Gilk | Accepted | PSR-15 |
| 16 | Simple Cache シンプルキャッシュ | Paul Dragoonis | Accepted | PSR-16 |
| 17 | HTTP Factories HTTPファクトリー | Woody Gilk | Accepted | PSR-17 |
| 18 | HTTP Client HTTPクライアント | Tobias Nyholm | Accepted | PSR-18 |
| 19 | PHPDoc tags Standard PHPDocタグ | Chuck Burgess | Draft | PSR-19 |