====== PSR ====== --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-04-21// PSR(PHP Standards Recommendations)は「PHP標準勧告」などと呼ばれており、PHP-FIG(PHP Framework Interop Group)が策定しているPHPのコーディング規約並びに標準インターフェース規格です。本編のフレームワーク編では何かとPSRを参考にしておりますので、この際、正確に勉強しようと思い本章を作ることにしました。ソフトウエア界には標準とか規約と呼ばれるものが多く存在し、従うか否かは自由なのですが、PSRについてはPHPエンジニアとして大いに参考になる思います。 本章は、若干の補足を加筆してはいるものの単に[[https://www.php-fig.org/psr/|PSRのサイト]]を日本語に翻訳したものに過ぎません。英語が堪能な方は原文をご参照下さい。翻訳に当たっては、基本的に機械翻訳を使い、理解できない部分は独断で意訳しております。拙い訳では御座いますが恥を忍んで投稿しておりますので、ご指摘など御座いましたらコメントを頂ければ幸いです。 尚、PSR関連の投稿は本章作成時点のステータースがACCEPTED(承認)及びDraft(草稿)なものを対象としています。初回はPSR6までを予定しおり、逐次追加してPSR19までを投稿する予定です。 リンク * [[https://www.php-fig.org/]] --- PHP-FIG(PSRを策定しているグループ) * [[https://www.php-fig.org/psr/]] --- PSR の本家 ===== 目次 ===== * PSR - PHP標準勧告 * [[psr:psr1|PSR-1: Basic Coding Standard - 基本コーディング規約]] * [[psr:psr3|PSR-3: Logger Interface - ロガーインターフェイス]] * [[psr:psr4|PSR-4: Autoloading Standard - オートローディング規約]] * [[psr:psr5|PSR-5: PHPDoc Standard(Draft) - PHPDoc規約]] * [[psr:psr6|PSR-6: Caching Interface - キャッシングインターフェイス]] * [[psr:psr7|PSR-7: HTTP Message Interface - HTTPメッセージインターフェイス]] * [[psr:psr11|PSR-11: Container Interface - コンテナインターフェイス]] * [[psr:psr12|PSR-12: Extended Coding Style - 拡張コーディングスタイル]] * [[psr:psr13|PSR-13: Link definition interfaces - リンク定義インターフェース]] * [[psr:psr14|PSR-14: Event Dispatcher - イベントディスパッチャー]] * [[psr:psr15|PSR-15: HTTP Server Request Handlers - HTTPサーバーリクエストハンドラー]] * [[psr:psr16|PSR-16: Common Interface for Caching Libraries - キャッシングライブラリのための共通インターフェース]] * [[psr:psr17|PSR-17: HTTP Factories - HTTPファクトリー]] * [[psr:psr18|PSR-18: HTTP Client - HTTPクライアント]] * [[psr:psr19|PSR-19: PHPDoc tags(Draft) - PHPDocタグ]] ----- ====== PHP標準勧告 ====== --- // 原文より抜粋して翻訳 [[https://www.php-fig.org/psr/|PHP Standards Recommendations)]] 2020-04-21 現在 // [[https://www.php-fig.org/bylaws/psr-workflow/|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|[[https://www.php-fig.org/psr/psr-0/|PSR-0]]| | 1|Basic Coding Standard\\ 基本コーディング規約|Paul M. Jones|Accepted|[[https://www.php-fig.org/psr/psr-1/|PSR-1]]| | 2|Coding Style Guide\\ コーディングスタイルガイド|Paul M. Jones|Deprecated|[[https://www.php-fig.org/psr/psr-2/|PSR-2]]| | 3|Logger Interface\\ ロガーインターフェイス|Jordi Boggiano|Accepted|[[https://www.php-fig.org/psr/psr-3/|PSR-3]]| | 4|Autoloading Standard\\ オートローディング規約|Paul M. Jones|Accepted|[[https://www.php-fig.org/psr/psr-4/|PSR-4]]| | 5|PHPDoc Standard\\ PHPDoc規約|Chuck Burgess|Draft|[[https://www.php-fig.org/psr/psr-5/|PSR-5]]| | 6|Caching Interface\\ キャッシングインターフェイス|Larry Garfield|Accepted|[[https://www.php-fig.org/psr/psr-6/|PSR-6]]| | 7|HTTP Message Interface\\ HTTPメッセージインターフェイス|Matthew Weier O’Phinney|Accepted|[[https://www.php-fig.org/psr/psr-7/|PSR-7]]| | 8|Huggable Interface\\ Huggableインターフェース|Larry Garfield|Abandoned|[[https://www.php-fig.org/psr/psr-8/|PSR-8]]| | 9|Security Advisories\\ セキュリティへの助言|Michael Hess|Abandoned|[[https://www.php-fig.org/psr/psr-9/|PSR-9]]| |10|Security Reporting Process\\ セキュリティレポートプロセス|Michael Hess|Abandoned|[[https://www.php-fig.org/psr/psr-10/|PSR-10]]| |11|Container Interface\\ コンテナインターフェース|Matthieu Napoli, David Négrier|Accepted|[[https://www.php-fig.org/psr/psr-11/|PSR-11]]| |12|Extended Coding Style Guide\\ 拡張コーディングスタイルガイド|Korvin Szanto|Accepted|[[https://www.php-fig.org/psr/psr-12/|PSR-12]]| |13|Hypermedia Links\\ ハイパーメディアリンク|Larry Garfield|Accepted|[[https://www.php-fig.org/psr/psr-13/|PSR-13]]| |14|Event Dispatcher\\ イベントディスパッチャー|Larry Garfield|Accepted|[[https://www.php-fig.org/psr/psr-14/|PSR-14]]| |15|HTTP Handlers\\ HTTPハンドラー|Woody Gilk|Accepted|[[https://www.php-fig.org/psr/psr-15/|PSR-15]]| |16|Simple Cache\\ シンプルキャッシュ|Paul Dragoonis|Accepted|[[https://www.php-fig.org/psr/psr-16/|PSR-16]]| |17|HTTP Factories\\ HTTPファクトリー|Woody Gilk|Accepted|[[https://www.php-fig.org/psr/psr-17/|PSR-17]]| |18|HTTP Client\\ HTTPクライアント|Tobias Nyholm|Accepted|[[https://www.php-fig.org/psr/psr-18/|PSR-18]]| |19|PHPDoc tags Standard\\ PHPDocタグ|Chuck Burgess|Draft|[[https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc-tags.md|PSR-19]]| \\