PSR
は PHP Standard Recommendation の略語で、実際には PSR と呼ばれる必要があります。これは一連の推奨標準です。現在承認されている仕様には、PSR-0 (Autoloading Standard)、PSR-1 (Basiccoding Standard)、PSR-2 (Coding) が含まれます。スタイル ガイド)、PSR-3 (ロガー インターフェイス)、PSR-4 (改良された自動読み込み)。これは公式の PHP 標準ではありませんが、Zend や Symfony2 などの有名な PHP プロジェクトから抽出された一連の標準です。現在、ますます多くのコミュニティ プロジェクトがメンバーとして参加し、この標準に従っています。
PHP-FIG — PHP Framework Interoperability Group は、PSR の開発仕様を策定する組織です。そのメンバーは、多くの有名な PHP コミュニティ プロジェクトで構成されています。公式 Web サイトのホームページの下部にメンバー リストが表示されます。これらのメンバーは仕様を開発し、プロジェクトに実装します。
実際、各 PSR 仕様の内容は非常に簡潔かつ明確であり、数十ページにわたる仕様よりもはるかに優れています。
PSR-0(オートローディングスタンダード)
PSR-0は自動クラスロード仕様です(原文:公式Webサイト、GitHub)。 2014 年 10 月 21 日の時点で、この仕様は非推奨としてマークされており、PSR-4 に置き換えられています。その内容は非常に簡潔です。
内容:
Vendor Name
>(<Namespace
>)*<Class Name
>」という構造でなければなりませんVendor Name
、名前空間とクラス名は大文字と小文字で構成できますが、マルチシステムの互換性を確保するために名前空間とクラス名は大文字と小文字が区別されますPSR-1(基本コーディング標準)
PSR-1は基本的なコーディング標準です(原文:公式Webサイト、GitHub)。クラスファイルの命名方法、クラス名、クラスメソッド名などの内容は簡潔ですか?
内容:
ソース ファイルではタグ のみを使用する必要があります
ソースファイル内のphpコードのエンコード形式は、BOMなしのUTF-8のみを使用する必要があります
ソース ファイルは、宣言 (クラス、関数、定数など) を行うためだけに使用するか、副作用を引き起こす一部の操作 (例: 情報の出力、.ini 設定ファイルの変更など) を実行するためだけに使用することをお勧めします。 、しかし、両方を同時に行うために使用されるべきではありません
。名前空間とクラスは PSR-0 標準に準拠する必要があります
クラス名はStudlyCapsを使用して記述する必要があります
クラス内の定数は大文字とアンダースコア (_) のみで構成する必要があります
メソッド名はcameCaseを使用して記述する必要があります
PSR-2(コーディングスタイルガイド)
PSR-2はコーディングスタイル標準です(原文:公式Webサイト、GitHub)。内容は若干増えていますが、PSR-1 に基づいており、インデント、コードの各行の長さ、改行、メソッドの可視性宣言、スペース、およびメソッド本体の中括弧の折り返しに関する関連規定が含まれています。
標準コンテンツ:
コードはPSR-1に準拠する必要があります
コードではインデントにタブではなく 4 つのスペースを使用する必要があります
コード行の長さには厳密な制限はありません。ソフト制限は 120 文字でなければならず、コードの各行は 80 文字以下であることが推奨されます
名前空間宣言の下には空行が必要であり、use宣言の下にも空行が必要です
クラスの左中括弧はその宣言の下の独自の行に配置する必要があり、右中括弧はクラス本体の下の独自の行に配置する必要があります
メソッドの左中括弧は宣言の下の独自の行に配置する必要があり、右中括弧はメソッド本体の次の行に配置する必要があります
すべてのプロパティとメソッドには可視性宣言が必要です。抽象宣言と最終宣言は可視性宣言の前になければならず、静的宣言は可視性宣言の後になければなりません。
PSR-3はインターフェースを介したアプリケーションログクラスの定義です(原文:公式サイト、GitHub)。内容は非常にシンプルで、公式のサンプルコードを引用するだけです。もちろん、特定のアプリケーションでは、このインターフェイスに従っている限り、対応する実装を間違いなくカスタマイズできます。
基本コンテンツ:
9 番目のメソッドは log で、最初のパラメータとしてログ レベルを受け入れます。ログ レベル定数を指定してこのメソッドを呼び出すと、指定したレベルのメソッドを直接呼び出した場合と同じ結果が得られる必要があります。この仕様で定義されておらず、実装に不明なログ レベルでこのメソッドを呼び出すと、PsrLogInvalidArgumentException がスローされる必要があります。現在のクラス ライブラリでカスタム ログ レベルがサポートされていることが確実でない限り、カスタム ログ レベルを使用することはお勧めできません。
PSR-4(自動読み込みの改善)
PSR-4は自動読み込み仕様の改良版です(原文:公式サイト、GitHub)。 PSR-0仕様の後継です。 PSR-0 を含む他の自動ロード仕様と互換性があります。
内容:
以上、PHP の PSR シリーズの仕様の内容をその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。