ホームページ  >  記事  >  バックエンド開発  >  PHP PSR-1 基本コード仕様

PHP PSR-1 基本コード仕様

WBOY
WBOYオリジナル
2016-07-23 08:54:44907ブラウズ
PHP、PSR
基本的なコード仕様

この仕様は、共有される PHP コード間の高度な技術的相互運用性を確保するために、
コードの基本要素に関連する標準を定めます。

キーワード「しなければならない」(「MUST」)、「してはならない/してはならない」(「MUST NOT」)、「必要」(「必須」)、
「するつもり」(「SHALL」)、「しない」( 「してはならない」)、「すべきである」(「すべきである」)、「すべきではない」(「すべきではない」)、
「推奨する」(「推奨」)、「できる」(「してもよい」)、および「オプション」(" OPTIONAL") については、[RFC 2119][] で詳細に説明されています。

概要


PHP コード ファイル PHP コード ファイル

は BOM なしで UTF-8 でエンコードする必要があります。 PHP コード

は、クラス、関数、定数などの宣言、または副次的な効果を生み出すその他の操作 (ファイル出力の生成や .ini 構成ファイルの変更など) のみを定義する必要があります。選択できるのは 1 つだけです。二人のうち;

名前空間とクラスは PSR の自動ロード仕様に準拠する必要があります: PSR-0[];

のいずれか

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

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

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

ファイル

2.1. PHP タグ

PHP コードでは長いタグまたは短い出力タグを使用する必要があります

他のカスタム タグを使用してはなりません


2.2. 文字エンコーディング

PHP コード必須であり、BOM のない UTF-8 エンコーディングのみを使用できます。 2.3. 副次的な影響(副作用) PHP ファイルでは、クラス、関数、定数などの新しい宣言と、依存関係の影響を生じないその他の操作のみを定義するか、依存関係の影響をもたらす論理操作のみを定義する必要がありますが、両方を同時に定義することはできません。同時に両方あります。 = ?>
「副作用」という用語は、クラス、関数、定数などを直接宣言せずに、ファイルをインクルードするだけで実行される論理演算を意味します。

「依存する影響」には、出力の生成、直接の require または include、外部サービスの接続、ini 構成の変更、エラーまたは例外のスロー、グローバル変数または静的変数の変更、ファイルの読み取りまたは書き込みなどが含まれますが、これらに限定されません。

以下は反例であり、宣言を含み依存関係の影響を生成するコードです:

// 依存関係の影響: ini 設定を変更します ini_set('error_reporting', E_ALL);

// 依存関係の効果: ファイルを導入します
include "file.php";

// 依存関係の効果: 出力を生成します

echo "n";

// 関数を宣言します
function foo()
{
    //関数本体
  1. }
  2. コードをコピー
  3. 以下は例であり、依存関係の影響を生成しない宣言のみを含むコードです:
  4. // Declare function
  5. function foo()
  6. {
// 関数本体
} // 条件宣言は従属効果ではありません**
if (! function_exists('bar')) {

function bar()

{
// 関数本体
}
    }
  1. コードをコピー
  2. 名前空間とクラス
  3. 名前空間とクラスの命名は [PSR-0][] に従う必要があります。
  4. 仕様によれば、各クラスは独立したファイルであり、名前空間には少なくとも 1 つのレベル (最上位の組織名 (ベンダー名)) があります。
  5. クラスの命名は、大文字で始まる StudlyCaps のキャメルケース命名規則に従う必要があります。
PHP 5.3 以降のバージョンのコードでは、
公式の名前空間を使用する必要があります。 例:


// PHP 5.3以降のバージョンの書き方

namespace VendorModel;

class Foo

{

}

コードをコピー

5.2.xおよび以前のバージョン
疑似名前空間の記述を使用する必要があり、慣例として、Vendor_ などの最上位の組織名 (ベンダー名) をクラス接頭辞として使用します。
  1. // 5.2.x 以前のバージョンの書き方
  2. class Vendor_Model_Foo
  3. {
}
コードをコピー

クラスの定数、プロパティ、メソッド

ここでの「クラス」とは、すべてのクラス、インターフェイス、再利用可能なコード ブロック (特性) を指します
4.1. 定数
    クラス定数
  1. 内のすべての文字は
  2. 大文字にする必要があり、単語はアンダースコアで区切られます。次のコードを参照してください:
<?phpnamespacevendormodel; コードをコピー

4.2. プロパティ

クラスの属性命名は、大文字で始まるキャメルケース ($StudlyCaps)、小文字で始まるキャメルケース ($camelCase)、または下線区切り形式 ($under_score) に従うことができます。この仕様は必須ではありません。ただし、どの名前が付けられても、メソッドはすべて一定の範囲内で一貫している必要があります。このスコープは、チーム全体、パッケージ全体、クラス全体、またはメソッド全体にすることができます。 4.3. 方法 メソッド名

は、小文字で始まる CamelCase() スタイルの CamelCase 命名規則に準拠する必要があります

Githubから転載(PizzaLiu)

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。