検索

PSR は PHP 開発に関する一連の仕様であり、私は表面的に学びましたが、記憶とフォローを容易にするために、必要なキーワードを抽出して作成しました。 a 単に必要な規範記録。 (ただのレンガ運び屋です...)
https://github.com/PizzaLiu/PHP-FIG
http://segmentfault.com/a/1190000002521577

公式リリースファイルのバージョン

PSR-0(非推奨)

PSR-1 基本コード仕様

PSR-2 コードスタイル仕様

PSR-2補足文書

PSR-3ログインターフェース仕様

PSR-4が自動的にロードされました

PSR-5 と PSR-6 の投票はまだ終わっていません

しなければならない PSR-1 基本コード仕様

php コード ファイルは

PHP コード ファイルは BOM なしで UTF-8 でエンコードする必要があります;

名前空間とクラスは、PSR の自動ロード仕様 (PSR-0 または PSR-4 のいずれか) に準拠する必要があります。

クラスの命名は、大文字で始まる StudlyCaps のキャメルケース命名規則に従う必要があります。

クラス内の定数の文字はすべて大文字にする必要があり、単語はアンダースコアで区切られます。

メソッド名は、小文字で始まるキャメルケースの命名規則に準拠する必要があります。

PHP コードでは

長いタグまたは

短い出力タグを使用する必要があります。他のカスタム タグは使用できません。 = ?>名前空間とクラスの命名は PSR-0 に準拠する必要があります。

PHP 5.3 以降のバージョンのコードでは、正式な名前空間を使用する必要があります。

各クラスは独立したファイルであり、名前空間には少なくとも 1 つのレベルがあります: 最上位の組織名 (ベンダー名)

PSR-2 コーディング スタイル ガイド

コードはPSR-1のコーディング仕様に従う必要があります。

コードはタブキーの代わりに4つのスペースを使用してインデントする必要があります。

注: インデントにタブ キーの代わりにスペースを使用する利点は、コードの相違点の比較、パッチ適用、コードのレビュー、およびコメントの際の混乱を避けることです。 また、位置合わせを容易にするために、インデントにスペースを使用します。

各名前空間宣言ステートメントと use 宣言ブロックの後に空行を挿入する必要があります。

クラスの開き中括弧 ({) は関数宣言の後の独自の行に記述する必要があり、閉じ中括弧 (}) も関数本体の後の独自の行に記述する必要があります。

メソッドの開き中括弧 ({) は関数宣言の後の独自の行に記述する必要があり、閉じ中括弧 (}) も関数本体の後の独自の行に記述する必要があります。

クラスのプロパティとメソッドはアクセス修飾子 (private、protected、public) を追加する必要があり、abstract と Final はアクセス修飾子の前に宣言する必要があり、static はアクセス修飾子の後に宣言する必要があります。

制御構造のキーワードの後に​​はスペースが必要ですが、メソッドまたは関数を呼び出すときはスペースがあってはなりません。

制御構造体の左中括弧 ({) は宣言と同じ行に記述し、右中括弧 (}) は本文の後の独自の行に記述する必要があります。

コントロール構造の左括弧の開始と右括弧の前にスペースがあってはなりません。

すべての PHP ファイルは、行終端文字として Unix LF (改行) を使用する必要があります。

すべての PHP ファイルは空行で終わる必要があります。

純粋な PHP コード ファイルでは、最後の ?> 終了タグを省略する必要があります。

1 行に複数のステートメントを含めることはできません。

空白行以外の行の後には余分なスペースがあってはなりません。

すべての PHP キーワードは小文字である必要があります。

定数 true、false、null もすべて小文字である必要があります。

PSR-3ログインターフェース仕様 PSR-4自動装填仕様

完全なクラス名は次の構造でなければなりません:

()*
    完全なクラス名にはトップレベルの名前空間が必要であり、「ベンダー」と呼ばれます。 namespace";
  1. 完全なクラス名には 1 つ以上のサブ名前空間を含めることができます;
  2. 完全なクラス名には最終クラス名が必要です;
  3. 完全なクラス名の一部のドロップには特別な意味はありません;
  4. 完全なクラス名は大文字と小文字で構成できます。
  5. すべてのクラス名は大文字と小文字を区別する必要があります。
コードをコピーします
完全なクラス名に基づいて対応するファイルをロードする場合

完全なクラス名で、最初の名前空間区切り文字、前にある1つ以上の連続する名前空間とサブ名を削除します スペース「名前空間プレフィックス」は、少なくとも 1 つの「ファイル ベース ディレクトリ」に対応している必要があります。 。
  1. の末尾のクラス名は、.php 接尾辞が付いた対応するファイルと同じ名前でなければなりません。
  2. オートローダーの実装は例外をスローしてはならず、どのレベルでもエラー メッセージをトリガーしてはならず、戻り値を持ってはいけません。
  3. コードをコピー
提案 (詳細については、詳細なドキュメントを参照してください) PSR-1

PHP コードでは、クラス、関数、定数などの宣言、または副次的な効果を生み出すその他の操作 (ファイル出力の生成や .ini 設定ファイルの変更など) のみを定義する必要があります。選択できるのは、次のいずれか 1 つだけです。 2つ

クラスの属性命名は、大文字で始まるキャメルケース ($StudlyCaps)、小文字で始まるキャメルケース ($camelCase)、または下線区切り形式 ($under_score) に従うことができます。この仕様は必須ではありません。ただし、どの名前に従う場合でも、メソッドは一定の範囲内で一貫している必要があります。

PSR-2

1 行あたりの文字数は、ソフト的に 80 文字以内に抑える必要があります。理論的には 120 文字を超えてはなりませんが、厳密な制限はありません。

空白行によりコードが読みやすくなり、コードをチャンクに分割するのに役立ちます。

コード例 PSR-2
  1. namespace VendorPackage;
  2. FooInterfaceを使用;
  3. BarClassをBarとして使用;
  4. OtherVendorOtherPackageBazClassを使用;
  5. class FooがBarを拡張し、FooInterfaceを実装します
  6. {
  7. public function sampleFunction($a, $b = null)
  8. {
  9. if ($a === $b) {
  10. bar();
  11. } elseif ($a > $b) {
  12. $foo->bar($arg1);
  13. } else {
  14. BazClass::bar($arg2, $arg3);
  15. }
  16. }
  17. 最終的なパブリック静的関数 bar()
  18. {
  19. // メソッド本体
  20. }
  21. }
コードをコピー
PHP、PSR


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Laravelでフラッシュセッションデータを使用しますLaravelでフラッシュセッションデータを使用しますMar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPロギング:PHPログ分析のベストプラクティスPHPロギング:PHPログ分析のベストプラクティスMar 10, 2025 pm 02:32 PM

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

PHPのカール:REST APIでPHPカール拡張機能を使用する方法PHPのカール:REST APIでPHPカール拡張機能を使用する方法Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキングLaravelテストでの簡略化されたHTTP応答のモッキングMar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプトCodecanyonで12の最高のPHPチャットスクリプトMar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。PHPにおける後期静的結合の概念を説明します。Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。